<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[进阶的小白]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/qq_31671139</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; qq_31671139]]></copyright><item><title><![CDATA[Halcon 一维码识别]]></title><link>https://blog.youkuaiyun.com/qq_31671139/article/details/116450016</link><guid>https://blog.youkuaiyun.com/qq_31671139/article/details/116450016</guid><author>qq_31671139</author><pubDate>Thu, 06 May 2021 11:26:33 +0800</pubDate><description><![CDATA[一、图像预处理和条码增强



对比度太低：scale_image（或使用外部程序scale_image_range），增强图像的对比度。



图像模糊：emphasize锐化图像，使条码看起来更清晰。



深色背景上读取浅色条码：invert_image反转图像。





二、解码涉及的主要算子



read_image ：读图

create_bar_code_model ：创建条码模型

find_bar_code ：查找条码

clear_bar_code_model ：清除条码...]]></description><category></category></item><item><title><![CDATA[halcon 开运算与闭运算]]></title><link>https://blog.youkuaiyun.com/qq_31671139/article/details/113184854</link><guid>https://blog.youkuaiyun.com/qq_31671139/article/details/113184854</guid><author>qq_31671139</author><pubDate>Tue, 26 Jan 2021 17:17:08 +0800</pubDate><description><![CDATA[例一：毛刺在往外凸的面上



策略1：分割出黑色部分，然后通过开运算去掉毛刺，再通过原黑色部分区域减去开运算之后的区域，得到毛刺部分的区域。


1 read_image (Tu, 'C:/Users/xiahui/Desktop/tu.jpg')
2 binary_threshold (Tu, Region, 'max_separability', 'dark', UsedThreshold)
3 opening_circle (Region, RegionOpening, 50.5)
4 diffe.]]></description><category></category></item><item><title><![CDATA[halcon连接海康威视相机]]></title><link>https://blog.youkuaiyun.com/qq_31671139/article/details/112513773</link><guid>https://blog.youkuaiyun.com/qq_31671139/article/details/112513773</guid><author>qq_31671139</author><pubDate>Tue, 12 Jan 2021 11:43:48 +0800</pubDate><description><![CDATA[一、使用mvs自开发驱动与halcon连接

1.找到mvs针对第三方连接的dll文件，根据安装版本以及电脑配置信息进行确定



2.将文件复制到halcon安装路径的bin文件夹下



3.使用halcon的image acquisition使用mvsion接口连接相机，生成代码进行连接



二、使用默认GigEVision2接口进行连接




...]]></description><category></category></item><item><title><![CDATA[halcon-tile_images_offset]]></title><link>https://blog.youkuaiyun.com/qq_31671139/article/details/111995708</link><guid>https://blog.youkuaiyun.com/qq_31671139/article/details/111995708</guid><author>qq_31671139</author><pubDate>Wed, 30 Dec 2020 18:00:32 +0800</pubDate><description><![CDATA[遇上一个项目，需要将多幅图片进行拼接。
研究了一下halcon中的tile_images_offset算子，这个算子可以完成类似以下结构的图片拼接工作：
算子签名：
tile_images_offset(Images : TiledImage : OffsetRow, OffsetCol, Row1, Col1, Row2, Col2, Width, Height : )
其中OffsetRow, OffsetCol用来定义拼接后的图片在整张大图中的左上角位置；
Row1,Col1,Row2,Col2用来定]]></description><category></category></item><item><title><![CDATA[halcon---concat_obj  连接两个对象]]></title><link>https://blog.youkuaiyun.com/qq_31671139/article/details/111994135</link><guid>https://blog.youkuaiyun.com/qq_31671139/article/details/111994135</guid><author>qq_31671139</author><pubDate>Wed, 30 Dec 2020 16:56:19 +0800</pubDate><description><![CDATA[concat_obj()



函数原型：concat_obj(Objects1,Objects2:ObjectsConcat::)



功能：

连接两个对象，ObjectsConcat = [Objects1,Objects2]

值得注意的是，不能将union1/union2和concat_obj混淆。union1/2是针对区域融合(merged)，因此对象的个数也被改变。

而concat_obj是将两个区域组合到一起



参数列表：

第1个参数Objects1是输入对象，即对象1

第...]]></description><category></category></item><item><title><![CDATA[c#方法前的方括号--特性]]></title><link>https://blog.youkuaiyun.com/qq_31671139/article/details/111151445</link><guid>https://blog.youkuaiyun.com/qq_31671139/article/details/111151445</guid><author>qq_31671139</author><pubDate>Mon, 14 Dec 2020 10:38:37 +0800</pubDate><description><![CDATA[1、序列化：
[Serializable]
public void 方法名(){...}
2、WebServices方法：
[WebMethod]
public void 方法名(){...}
3、Ajax(AjaxPro)方法：
[AjaxPro.AjaxMethod]
public void 方法名(){...}
4、其他还有很多，如Duwamish7里的：
[Browsable(false)]
public void 方法名(){...}

------------------------------]]></description><category></category></item><item><title><![CDATA[gen_circle（）]]></title><link>https://blog.youkuaiyun.com/qq_31671139/article/details/110879085</link><guid>https://blog.youkuaiyun.com/qq_31671139/article/details/110879085</guid><author>qq_31671139</author><pubDate>Tue, 08 Dec 2020 18:25:01 +0800</pubDate><description><![CDATA[算子：gen_circle( : Circle : Row, Column, Radius : )

作用：gen_circle生成一个或多个由中心和半径描述的圆。

     gen_circle仅创建对称圆。为此，半径向内四舍入五为0.5的倍数。如果为半径指定一个整数（即1、2、3，...），则获得一个均匀的直径，因此，该圆只能相对于坐标为小数部分为0.5的中心对称。因此，在内部将中心坐标调整为小数部分为0.5的最近坐标。在此，整数坐标将四舍五入为小数部分为0.5的下一个较小值。对于奇数直径...]]></description><category></category></item><item><title><![CDATA[fill_up和fill_up_shape]]></title><link>https://blog.youkuaiyun.com/qq_31671139/article/details/110879017</link><guid>https://blog.youkuaiyun.com/qq_31671139/article/details/110879017</guid><author>qq_31671139</author><pubDate>Tue, 08 Dec 2020 18:17:09 +0800</pubDate><description><![CDATA[算子：fill_up(Region : RegionFillUp : : )功能：填充区域中的孔或和缝等将输入区域的孔，缝隙进行填充，形成新的完成区域。输入参数：Region输入含孔（缝隙）的区域输出参数：RegionFillUp: 输出一个布满缝隙及孔的区域

算子：fill_up_shape(Region : RegionFillUp : Feature, Min, Max : )功能：fill_up_shape会填充输入区域Region中具有给定形状特征的那些孔。 参数特征确定要使用的形状特征，而最小]]></description><category></category></item><item><title><![CDATA[connection()算子简介]]></title><link>https://blog.youkuaiyun.com/qq_31671139/article/details/110878937</link><guid>https://blog.youkuaiyun.com/qq_31671139/article/details/110878937</guid><author>qq_31671139</author><pubDate>Tue, 08 Dec 2020 18:12:57 +0800</pubDate><description><![CDATA[1、connection(Region, ConnectedRegions）

connection算子一般就两个参数，参数Region表示需要计算的输入图像区域，参数ConnectedRegions表示输出图像区域。

2、connection函数简介



如上图所示 ，整个椭圆里面的所有矩形，我们把所有这些矩形称之为一个region，这个时候你用Region做参数计算区域内目标的个数就是1，那么，现在我想知道这个Region实际上包含了多少个子区域sub_region，即多少个矩形，我要怎么弄？当然是]]></description><category></category></item><item><title><![CDATA[difference与sub_image]]></title><link>https://blog.youkuaiyun.com/qq_31671139/article/details/110878899</link><guid>https://blog.youkuaiyun.com/qq_31671139/article/details/110878899</guid><author>qq_31671139</author><pubDate>Tue, 08 Dec 2020 18:10:18 +0800</pubDate><description><![CDATA[1.difference算子检测region形状的差别，计算对象是两个region，不考虑region灰度值是否有差异；

2.sub_image算子是灰度值相减，计算对象是两幅图像，主要检测图像区别，和形状没有多大关系；
]]></description><category></category></item><item><title><![CDATA[shape_trans（）]]></title><link>https://blog.youkuaiyun.com/qq_31671139/article/details/110878789</link><guid>https://blog.youkuaiyun.com/qq_31671139/article/details/110878789</guid><author>qq_31671139</author><pubDate>Tue, 08 Dec 2020 18:06:16 +0800</pubDate><description><![CDATA[原型：shape_trans(Region : RegionTrans : Type : )

函数作用：

变换区域的形状

参数Type的可选项解释如下：

convex：凸包性

ellipse：与输入区域有相同的矩和区域的椭圆

outer_circle：最小外接圆

inner_circle：最大内接圆

rectangle1：平行于坐标轴的最小外接矩形

rectangle2：最小外接矩形

inner_rectangle1：平行于坐标轴的最大内接矩形

inner_rectangle2：输入区]]></description><category></category></item><item><title><![CDATA[dyn_threshold（）使用]]></title><link>https://blog.youkuaiyun.com/qq_31671139/article/details/110877916</link><guid>https://blog.youkuaiyun.com/qq_31671139/article/details/110877916</guid><author>qq_31671139</author><pubDate>Tue, 08 Dec 2020 18:01:25 +0800</pubDate><description><![CDATA[1. 算子结构

首先看dyn_threshold 算子参数
dyn_threshold(OrigImage, ThresholdImage : RegionDynThresh : Offset, LightDark )

根据阈值进行图像分割处理
参数分析：
OrigImage:需要进行阈值分割的原始图像

ThresholdImage: 通过一定图像预处理得到的阈值图像（这个预处理通常是对原图应用mean_image/gauss_image/binomial_filter 处理后的图像）

Region]]></description><category></category></item><item><title><![CDATA[Halcon常用快捷键]]></title><link>https://blog.youkuaiyun.com/qq_31671139/article/details/110877807</link><guid>https://blog.youkuaiyun.com/qq_31671139/article/details/110877807</guid><author>qq_31671139</author><pubDate>Tue, 08 Dec 2020 17:23:33 +0800</pubDate><description><![CDATA[1，ctrl+E————打开浏览例程

2，ctrl+F————查找/替换

3，F1—————-查看帮助

4，F2—————-重置程序

5，F3—————-取消程序注释

6，F4—————-程序注释

7，F5—————-程序运行，从第一行程序运行到最后一行

8，F6—————-程序单步运行

9，F7—————-单步跳入函数

10，F8—————单步跳出函数
...]]></description><category></category></item><item><title><![CDATA[select_shape_std（）]]></title><link>https://blog.youkuaiyun.com/qq_31671139/article/details/110877686</link><guid>https://blog.youkuaiyun.com/qq_31671139/article/details/110877686</guid><author>qq_31671139</author><pubDate>Tue, 08 Dec 2020 17:21:30 +0800</pubDate><description><![CDATA[作用：select_shape_std(Regions : SelectedRegions : Shape, Percent : )
函数根据Shape指定的形状特征，从Regions 选择满足特征的区域，保存到SelectedRegions 。
Shape有以下取值
 max_area
 面积最大区域被选择

 rectangle1 通过smallest_rectangle1计算区域的最小外接平行矩形， 如果计算出的区域与原区域面积百分比大于Percent ，则此区域选中输出。 rectang...]]></description><category></category></item><item><title><![CDATA[mean_image（）平滑图像]]></title><link>https://blog.youkuaiyun.com/qq_31671139/article/details/110876915</link><guid>https://blog.youkuaiyun.com/qq_31671139/article/details/110876915</guid><author>qq_31671139</author><pubDate>Tue, 08 Dec 2020 16:54:59 +0800</pubDate><description><![CDATA[算子：mean_image(Image : ImageMean : MaskWidth, MaskHeight : )功能：通过均值平滑一个图像。
算子mean_image使用所有输入图像（Image）的灰度值执行线性平滑。输入参数：
Image：输入图像(byte’/ int2’/ uint2’/ int4’/ int8 /real’/ vector_field);
MaskWidth：输入平滑蒙板宽度，默认 9’参考 3, 5, 7, 9, 11, 15, 23, 31, 43, ...]]></description><category></category></item><item><title><![CDATA[halcon读取图像]]></title><link>https://blog.youkuaiyun.com/qq_31671139/article/details/110205217</link><guid>https://blog.youkuaiyun.com/qq_31671139/article/details/110205217</guid><author>qq_31671139</author><pubDate>Thu, 26 Nov 2020 21:14:46 +0800</pubDate><description><![CDATA[读取图像 :read_image

打开图像窗口:dev_open_window

获取图像尺寸:get_image_size

显示图像:dev_display

设置窗口句柄:dev_set_window

合适的窗口:dev_open_window_fit_image(dev_open_window_fite_size)






read_image (Image, '1')


*打开图像窗口

dev_open_window (0, 0, 512, 512, 'black', WindowH.]]></description><category></category></item><item><title><![CDATA[gen_empty_obj算子的作用]]></title><link>https://blog.youkuaiyun.com/qq_31671139/article/details/109960529</link><guid>https://blog.youkuaiyun.com/qq_31671139/article/details/109960529</guid><author>qq_31671139</author><pubDate>Sun, 22 Nov 2020 18:54:57 +0800</pubDate><description><![CDATA[gen_empty_obj算子解释：Create an empty object tuple。

其算子签名为：

gen_empty_obj( : EmptyObject : : )



那么有人要问：创建一个空的object有什么用呢？

其实gen_empty_obj 的作用类似于面向对象编程中的“类的实例化”，可以防止“空引用异常”。



语句gen_empty_obj( EmptyObject )的意思是：EmptyObject 是真实存在的一个object（因为它被创建出来了），只是...]]></description><category></category></item><item><title><![CDATA[Halcon中 reduce_domain算子和crop_domain算子的使用及配合]]></title><link>https://blog.youkuaiyun.com/qq_31671139/article/details/109109992</link><guid>https://blog.youkuaiyun.com/qq_31671139/article/details/109109992</guid><author>qq_31671139</author><pubDate>Fri, 16 Oct 2020 09:23:15 +0800</pubDate><description><![CDATA[1 reduce_domain算子


reduce_domain ( Image, Region : ImageReduced : : ) 
其中，Image是输入的图像；Region是输入的区域；ImageReduced是输出的图像，是Image中Region的那部分图像。

1
	2
　　通过reduce_domain确实能获得特定区域Region位置的图像，但是，reduce_domain是缩小一个图像的定义域，并不缩小图像的实际尺寸，即新图像ImageReduced尺寸大小并未发生变化。如果使用g]]></description><category></category></item><item><title><![CDATA[C# Socket通讯]]></title><link>https://blog.youkuaiyun.com/qq_31671139/article/details/108658713</link><guid>https://blog.youkuaiyun.com/qq_31671139/article/details/108658713</guid><author>qq_31671139</author><pubDate>Mon, 21 Sep 2020 10:42:21 +0800</pubDate><description><![CDATA[参考http://bbs.cskin.net/thread-326-1-1.html的大神的代码

服务器端：

第一步：创建一个用于监听连接的Socket对像；

第二步：用指定的端口号和服务器的ip建立一个EndPoint对像；

第三步：用socket对像的Bind()方法绑定EndPoint；

第四步：用socket对像的Listen()方法开始监听；

第五步：接收到客户端的连接，用socket对像的Accept()方法创建一个新的用于和客户端进行通信的socket对像;

第六步：通信结束后一]]></description><category></category></item><item><title><![CDATA[c# 网口通讯]]></title><link>https://blog.youkuaiyun.com/qq_31671139/article/details/108635725</link><guid>https://blog.youkuaiyun.com/qq_31671139/article/details/108635725</guid><author>qq_31671139</author><pubDate>Thu, 17 Sep 2020 09:26:06 +0800</pubDate><description><![CDATA[一、
命令行 客户端程序:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Net;
using System.Net.Sockets;
using System.Threading; 
namespace client
{
  class Program
  {
    pri...]]></description><category></category></item></channel></rss>