- 博客(164)
- 收藏
- 关注
原创 Halcon 深度学习缺陷检测
必须要有Good或者是OK文件夹做标注,剩下两个为逻辑异常和结构异常。已经用 DLT做好标注,训练,和评估,只需修改推理代码。点击检查选择good可以获取所有good图像的照片。> 点击创建训练点击保存更改。通过阈值可以调整判定的区间。滑动热图可以看出误判结果。设置完成后点击开始训练。
2024-05-03 13:58:59 452
原创 Halcon 检测物体定位点
Halcon 中的区域Image : 图像 (input_object): 类型可以是 (多通道-) 图像数组,对象类型为字节、方向、循环、int1、int2、uint2、int4、int8、实数、复数或矢量场。这是输入图像。Domain : 域 (output_object): 类型是区域数组,对象类型。这是输入图像的定义域。
2024-04-30 21:52:47 223
原创 31 OpenCV 距离变换和分水岭算法
2. 使用filter2D与拉普拉斯算子实现图像对比度提高,sharp。1.将白色背景变成黑色-目的是为后面的变换做准备。5. 对距离变换结果进行归一化到[0~1]之间。7. 腐蚀得到每个Peak - erode。8.发现轮廓 – findContours。9. 绘制轮廓- drawContours。3. 转为二值图像通过threshold。6. 使用阈值,再次二值化,得到标记。10.分水岭变换 watershed。11. 对每个分割区域着色输出结果。
2024-04-28 22:27:23 520 1
原创 27 OpenCV 凸包
什么是凸包(Convex Hull),在一个多变形边缘或者内部任意两个点的连线都包含在多边形边界或者内部。包含点集合S中所有点的最小凸多边形称为凸包。
2024-03-21 21:48:01 409
原创 Halcon 路标牌识别
determine_area_of_interest (Image, Rectangle, AreaOfInterest) 函数。
2024-03-21 17:01:21 426
原创 25 OpenCV模板匹配算法
模板匹配就是在整个图像区域发现与给定子图像匹配的小块区域。所以模板匹配首先需要一个模板图像T(给定的子图像)另外需要一个待检测的图像-源图像S工作方法,在带检测图像上,从左到右,从上向下计算模板图像与重叠子图像的匹配度,匹配程度越大,两者相同的可能性越大。其中 TM_SQDIFF 和 TM_SQDIFF_NORMED 方法的相似度值越小代表匹配程度越高,而其他方法则是相反,相似度值越大代表匹配程度越高。
2024-03-19 21:54:10 319
原创 23 OpenCV 直方图比较
在计算直方图相似度时,常用的方法包括交叉相关性(Correlation)、卡方(Chi-Square)、巴氏距离(Bhattacharyya distance)等。这些方法可以帮助我们量化图像之间的相似性,从而在图像检索、匹配和分类等领域发挥重要作用。直方图比较的目的是衡量两幅图像之间的相似度或差异度。通过计算图像的颜色直方图并对其进行归一化处理,可以得到描述图像颜色分布的特征向量。然后,通过比较这些特征向量,我们可以评估两幅图像在颜色分布上的相似程度。
2024-03-18 21:00:44 502
原创 22 OpenCV 直方图计算
归一化函数的作用是将数据转换为特定范围内的值,通常是[0, 1]或者[-1, 1]。这种转换可以消除不同特征之间的量纲影响,使得不同特征之间具有可比性,有利于模型的训练和优化。归一化还有助于加快模型的收敛速度,提高模型的稳定性和准确性。上述直方图概念是基于图像像素值,其实对图像梯度、每个像素的角度、等一切图像的属性值,我们都可以建立直方图。这个才是直方图的概念真正意义,不过是基于图像像素灰度直方图是最常见的。
2024-03-17 21:22:02 504
原创 21 OpenCV 直方图均衡化
直方图均衡的目的是增强图像的对比度,使得图像中的各个区域的亮度分布更加均匀,从而提高图像的视觉质量。通过对图像的灰度直方图进行调整,将原始图像中灰度值分布不均匀的部分拉伸开来,使得整个灰度范围内的像素值都能得到充分利用,达到增强图像细节、改善图像质量的效果。直方图均衡也常用于图像增强、图像压缩、图像分割等领域。图像直方图,是指对整个图像像在灰度范围内的像素值(0~255)统计出现频率次数,据此生成的直方图,称为图像直方图-直方图。直方图反映了图像灰度的分布情况。
2024-03-17 10:26:10 546
原创 17 OpenCv Canny算子
高斯模糊 - GaussianBlur灰度转换 - cvtColor计算梯度 – Sobel/Scharr非最大信号抑制高低阈值输出二值图像。
2024-03-13 21:31:41 486
原创 16 OpenCV Laplance算子
在二阶导数的时候,最大变化处的值为零即边缘是零值。导数计算,依据此理论我们可以计算图像二阶导数,提取边缘。
2024-03-12 20:59:10 500
原创 15 OpenCV Sobel算子
是离散微分算子(discrete differentiation operator),用来计算图像灰度的近似梯度Soble算子功能集合高斯平滑和微分求导又被称为一阶微分算子,求导算子,在水平和垂直两个方向上求导,得到图像X方法与Y方向梯度图像水平梯度垂直梯度最终图像梯度。
2024-03-11 21:32:11 436
原创 14 OpenCv边缘处理
图像卷积的时候边界像素,不能被卷积操作,原因在于边界像素没有完全跟kernel重叠,所以当3x3滤波时候有1个像素的边缘没有被处理,5x5滤波的时候有2个像素的边缘没有被处理。在卷积开始之前增加边缘像素,填充的像素值为0或者RGB黑色,比如3x3在 四周各填充1个像素的边缘,这样就确保图像的边缘被处理,在卷积处理之。
2024-03-10 10:27:30 440
原创 Halcon局部可变形模板匹配
find_local_deformable_model 找到图像中局部可变形模型的最佳匹配。get_deformable_model_contours 返回可变形模型的轮廓表示形式。gen_ellipse_contour_xld 创建一个对应于椭圆弧的XLD轮廓。create_local_deformable_model 创建局部可变形模板。vector_field_to_real 将矢量场图像转换为两个实值图像。gen_region_contour_xld 从XLD轮廓创建一个区域。
2024-03-09 14:04:13 600
原创 Halcon 比较模板与实物的不同筛选残次品
inspect_cap (rImage, RegionROI, WindowHandle, ModelID, VariationID, RowModel, ColumnModel, BackgroundGVModel, ForegroundGVModel) 比较灰度值的不同。get_variation_model 返回变量模型用于图像比较的图像,返回训练后的图片和差异图像。compare_ext_variation_model 比较图片与模板图片的不同。sobel_amp 索贝尔算子检测边缘(振幅)
2024-03-09 10:45:38 622
原创 13 OpenCv自定义线性滤波
把kernel放到像素数组之上,求锚点周围覆盖的像素乘积之和(包括锚点),用来替换锚点覆盖下像素点值称为卷积处理。
2024-03-08 21:33:56 512
原创 12 OpenCv阈值处理
实际上是基于图片亮度的一个黑白分界值,默认值是50%中性灰,即128,亮度高于128(<50%的灰)的会变白,低于128(>50%的灰)的会变黑。为了从一副图像中提取出我们需要的部分,应该用图像中的每一个像素点的灰度值与选取的阈值进行比较,并作出相应的判断。(注意:阈值的选取依赖于具体的问题。左下方的图表示图像像素点Src(x,y)值分布情况,蓝色水平线表示阈值。左下方的图表示图像像素点Src(x,y)值分布情况,蓝色水平线表示阈值。左下方的图表示图像像素点Src(x,y)值分布情况,蓝色水平线表示阈值。
2024-03-07 22:16:09 643
原创 11 OpenCV 上采样与降采样,高斯不同(DOG)
定义:就是把同一张图像在不同的参数下做高斯模糊之后的结果相减,得到的输出图像。称为高斯不同(DOG)高斯不同是图像的内在特征,在灰度图像增强、角点检测中经常用到。
2024-03-07 21:33:30 541
原创 Halcon 颜色检测
add_samples_image_class_mlp 将图像中的训练样本添加到多层感知器的训练数据中。create_color_trans_lut — 创建RGB颜色空间到任意颜色空间的图像转换查找表。create_class_lut_gmm 使用高斯混合模型创建查找表,对字节图像进行分类。classify_image_class_mlp 使用多层感知器对图像进行分类。add_samples_image_class_gmm 添加样本。classify_image_class_lut 颜色分类表。
2024-03-07 10:18:37 775
原创 08 OpenCV 腐蚀和膨胀
膨胀与腐蚀是数学形态学在图像处理中最基础的操作。其卷积操作非常简单,对于图像的每个像素,取其一定的邻域,计算最大值/最小值作为新图像对应像素位置的像素值。其中,取最大值就是膨胀,取最小值就是腐蚀。膨胀操作是取每个位置领域内最大值,所以膨胀后输出图像的总体亮度的平均值比起原图会有所升高,图像中比较亮的区域的面积会变大,而较暗物体的尺寸会减小甚至消失。膨胀和腐蚀是一对好基友,是相反的一对操作,所以腐蚀就是求局部最小值的操作。
2024-03-04 21:06:13 570
原创 07OpenCV 图像模糊
双边滤波是一种综合考虑滤波器内图像空域信息和滤波器内图像像素灰度值相似性的滤波算法,可以实现在保留区域信息的基础上实现对噪声的去除、对局部边缘的平滑。双边滤波器是两个滤波器的结合,分别考虑空域信息和值域信息,使得滤波器对边缘附近的像素进行滤波时,距离边缘较远的像素值不会对边缘上的像素值影响太多,进而保留了边缘的清晰性。6x6像素表中,3x3的卷积算子从图一所示的红色像素开始卷积,依次从左至右,从上至下。值域核:一定像素差范围进行局部模糊,像素值高的在高的部分模糊,低的在低的那部分模糊,保留了边缘区分。
2024-03-03 14:47:49 1074
原创 04 Opencv图像操作
读一个RGB像素点的像素值 Vec3f intensity = img.at(y, x);读一个GRAY像素点的像素值(CV_8UC1) Scalar intensity = img.at(y, x);或者 Scalar intensity = img.at(Point(x, y));RGB三通道图像 img.at(y,x)[0]=128;灰度图像 img.at(y, x) = 128;
2024-02-29 22:17:58 593
原创 Halcon 求孔洞的大小和数量
在工业中可以利用孔洞的多少和孔洞的大小来分析出产品的缺陷问题,例如一个产品有8个孔洞,孔洞多和少都会被识别为不合格产品,或者求出孔洞的面积,如果孔洞的大小超出一定的范围将视为不合格。汽车按钮通过 识别算法找到图片,将图片进行裁剪如果有孔洞为不合格。
2024-02-29 16:33:58 380
原创 03OpenCV图像的掩膜操作
在图像处理方面,无论是加是减,乘除,都会超出一个像素灰度值的范围(0~255),saturate_cast函数的作用即是:当运算完之后,结果为负,则转为0,结果超出255,则为255。红色是中心像素,从上到下,从左到右对每个像素做同样的处理操作,得到最终结果就是对比度提高之后的输出图像Mat对象。注:相当于用一个刷子把图像的每隔几点的颜色增强(理解就行),以下为代码表达。filter2D 掩码算子。
2024-02-28 22:00:03 513
原创 MFC 配置Halcon
1.新建一个MFC 工程,Halcon 为64位,所以先将工程改为x64。> VC++ 目录设置包含目录和库目录。c/c++ ->常规。静态库文件添加项目中。
2024-02-23 09:45:24 904
Qt QtableWidget自定义表格
2023-11-07
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人