
图像处理
文章平均质量分 60
图像处理
手写不期而遇
机器视觉,ISP算法,C++,3D视觉,光学算法,数学,算法,编程,立身之本
展开
-
Qt封装的Halcon显示控件,支持ROI绘制
目前机器视觉ROI交互控件在C#上做的比较多,而Qt上做的比较少,根据作者VS+Qt+Halcon——显示图片,实现鼠标缩放、移动图片的文章,我在显示和移动控件的基础上,增加了ROI设置功能,并封装成了一个独立的Qt控件。原创 2023-11-04 00:16:44 · 1273 阅读 · 0 评论 -
Matlab/C++源码实现RGB通道与HSV通道的转换(效果对比Halcon)
HSV通道是指图像处理中的一种颜色模型,它由色调(Hue)、饱和度(Saturation)和明度(Value)三个通道组成。色调表示颜色的种类,饱和度表示颜色的纯度或鲜艳程度,明度表示颜色的亮度。HSV通道常用于图像处理中的颜色分析、颜色过滤、颜色调整等任务,它相对于其他颜色模型具有更直观和易于调节的特点,因此被广泛应用于计算机视觉和图像处理的领域原创 2023-10-18 22:18:17 · 1647 阅读 · 0 评论 -
计算机颜色学---CIE 色度图以及饱和度处理
了解颜色相关理论与成像知识,对于深入了解视觉相关算法与ISP算法而言十分重要,了解颜色理论,离不开CIE色度图;原创 2023-04-11 22:11:57 · 6677 阅读 · 1 评论 -
海康工业相机SDK连接demo,Qt界面显示
在机器视觉开发过程中,经常使用工业相机采集图像,以下采用海康机器人提供的SDK开发demo,使用语言C++,界面显示使用的Qt。SDK来自MVS 3.1版本中附属的Development文件夹。原创 2023-04-05 20:23:27 · 2792 阅读 · 5 评论 -
Halcon算子常见英文命名解释(持续更新)
前言Halcon中算子众多,其实熟悉常见图像处理中一些名词及对应的英文,便能够很好的记忆这些算子流程和使用方法,哪怕忘记了算子的名称,也可以根据熟悉的英文去检索,达到事半功倍的效果。(当然,这些英文是图像处理常用的名词解释,也适用于记忆OpenCV,matlab,visionpro等图像算法库中的函数)这些单词是根据实际术语来总结的,不用于翻译软件,某些单词做了专业术语翻译。常用英文解释image 图像region 区域Row 行坐标原创 2021-12-27 19:58:19 · 2041 阅读 · 0 评论 -
Halcon二维码识别,多二维码识别,附代码及常见算子解释
dev_close_window ()read_image (Image, 'C:/Users/gdzhucy/Desktop/标定板出图.png')dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)rgb1_to_gray (Image, GrayImage) create_data_code_2d_model ('QR Code', 'default_parameters', 'enhanced_recognition',原创 2022-01-05 21:06:24 · 8867 阅读 · 0 评论 -
Halcon分类----高斯混合模型GMM
前言现有的图像中目标的分类常用深度学习模型处理,但是深度学习需要大量模型处理。对于明显提取的目标,常常有几个明显特征,利用这几个明显特征使用少量图片便可以完成图像目标分类工作。这里介绍使用高斯混合模型GMM处理图像。常用算子及流程先提取特征,提取区域特征(或者边缘,灰度特征等)*计算区域圆度 circularity(区域,圆度值)*计算区域面积 area_center(区域,面积)*将两个特征转化为一个向量中 FeatureVector:=real([Circularity,Are原创 2021-12-29 22:24:14 · 2758 阅读 · 0 评论 -
Halcon傅里叶变换,算法加速,格式转换
* 优化实值FFT的运行时间optimize_rft_speed (700,700, 'standard')*生成高斯滤波器,然后相减得到一个滤波器图像Sigma1 := 180.0 Sigma2 :=0.5gen_gauss_filter (GaussFilter1, Sigma1, Sigma1, 0.0, 'none', 'rft',680, 680) gen_gauss_filter (GaussFilter2, Sigma2, Sigma2, 0.0, 'none', 'rft',68原创 2021-12-24 23:20:18 · 1889 阅读 · 0 评论 -
Matlab底层算法实现图像亮度的增减
公式Matlab底层源码%%%%%%%%%%%%%%%%%%%%%%%%图像的亮度增减clc;image = imread('C:\Users\MI\Desktop\1.png');image_matrix=image(:,:,1);BrightNumber=100; %增加的亮度[height,width,channels]=size(image);GrayImage_matrix=zeros(height,width);for i=1:height for j=1:wid原创 2022-03-14 21:16:34 · 3187 阅读 · 0 评论 -
Matlab底层源代码实现图像腐蚀,膨胀操作(与Halcon效果一致)
Matlab底层源代码实现图像腐蚀,膨胀操作(与Halcon效果一致)原创 2022-07-05 10:26:45 · 4939 阅读 · 0 评论 -
Matlab底层算法实现Robert边缘微分检测,横向微分,纵向微分
公式Matlab源代码%%%%%%%%%%%%%%%%%%%%%%%%图像的边缘检测clc;image = imread('D:\1.png');image_matrix=image(:,:,1);image_matrix=double(image_matrix);[height,width,channels]=size(image);G=zeros(height,width);for i=1:height-1 for j=1:width-1 G(i,j)=sqrt(原创 2022-03-15 19:36:56 · 4646 阅读 · 0 评论 -
Matlab底层源码实现prewitt边缘检测和Sobel,Laplace边缘检测(实现效果与Halcon一致)
Matlab底层源代码实现Prewitt边缘检测和Sobel,Laplace边缘检测(实现效果与Halcon一致)原创 2022-07-05 10:48:28 · 1771 阅读 · 0 评论 -
Matlab底层算法实现图像直方图统计
公式灰度直方图应用范围十分广泛,它为图像的处理研究提供了一个有力的辅助工具。直方图具有以下性质:只反映该图像中不同灰度值出现的次数(或频数),从而反映某一灰度值像素数量,丢失了位置信息。图像与直方图是多对一的映射关系源代码clcimage = imread('D:\2.png');image_matrix=image(:,:,1);image_matrix=double(image_matrix);[height,width,channels]=size(image);%灰度映射表原创 2022-03-25 20:52:03 · 9018 阅读 · 1 评论 -
Matlab底层算法实现彩色图像转灰度图
公式:Gray=0.299R+0.587G+0.114BMatlab源码:%%%%%%%%%%%%%%%%%%%%%%%%彩色图像转换为单通道灰度图像clc;image=imread('D:\1.jpeg');[width,height,channels]=size(image);if(channels==3) r_matrix=image(:,:,1); g_matrix=image(:,:,2); b_matrix=image(:,:,3); GrayIma原创 2022-03-08 22:54:26 · 3443 阅读 · 0 评论 -
Matlab底层算法实现基于动态阈值的自动白平衡算法
公式Matlab源码%%%%%%%%%%%%%%%基于动态阈值的自动白平衡算法实现clc;image=imread('D:\1.jpg');%分离出RGB三通道矩阵r_matrix=image(:,:,1);g_matrix=image(:,:,2);b_matrix=image(:,:,3);%将RGB空间转化成YCbCr空间Y_matrix=0.299.*r_matrix+0.587.*g_matrix+0.114.*b_matrix;Cb_matrix=-0.172.*r_mat原创 2022-03-14 20:45:29 · 1049 阅读 · 1 评论 -
Matlab底层算法实现图像转置--宽高互换,平移,水平,垂直镜像
公式图像的转置操作是将图像像素的x坐标与y坐标互换。映射关系为:原创 2022-03-20 19:32:04 · 3688 阅读 · 0 评论 -
Matlab底层算法实现图像分段线性变换,灰度图固定阈值法,双固定阈值法
公式函数表达式如下: &nbs原创 2022-03-22 21:56:45 · 5834 阅读 · 0 评论 -
Matlab底层算法实现图像反色变换
公式灰度的线性变换就是将图像中所有点的灰度按照线性灰度变换函数进行变换。灰度变换方程为:原创 2022-03-22 21:58:51 · 3820 阅读 · 0 评论 -
Halcon常用图像预处理算子总结
Halcon常用图像预处理算子总结原创 2022-07-05 10:30:25 · 4015 阅读 · 0 评论 -
Matlab底层算法实现图像灰度对数,指数,幂次变换
公式灰度对数变换公式如下: &原创 2022-03-22 21:54:37 · 4670 阅读 · 0 评论 -
Halcon句柄操作
前言在Windows操作系统下,句柄代表一个标识符,通常是一个整数,和内存管理机制有关。一般句柄的命名都带有handle,使用时注意即可。对于Halcon新人而言,往往不注重句柄的清除问题,这类似于C++中new,delete一样,如果句柄不清除的话,回导致软件运行过程中占用内存越来越大。不仅仅Halcon存在句柄,很多开放的SDK都会有句柄,比如说海康相机SDK中的handle代表相机设备句柄,通过句柄可以更改相机的参数。句柄不释放带来的内存问题比如说,刚新建一个halcon项目时,可以看到fo原创 2021-12-19 15:38:01 · 5604 阅读 · 0 评论 -
halcon算法库中各坐标系,位姿的解释及原理
视觉和halcon软件中各坐标系的解释及原理世界坐标系(刚性变换到)-----------相机坐标系 (外参R与t)原创 2021-12-12 16:09:12 · 9662 阅读 · 6 评论 -
标定的分类(一)
关于标定的分类及说明现在工业机器视觉和计算机视觉大量应用标定算法,但是对于初学者来说,存在概念模糊,理论理解错误的现状,因此,需要对标定进行梳理,防止大家在学习过程中混淆各种标定概念。话不多话,上干货!!!!标定的分类如果你是视觉工程师,一定会听说过标定这个词,有手眼标定,相机标定,九点标定等等。但是对于控制工程师来说,需要研究轴组和机器人,这时候他们理解的标定指的是机器人本体标定,用户坐标系标定等等。很多时候视觉算法工程师和控制算法工程师在讨论标定问题时,会陷入死胡同。其实,无论什么标定,标定的基原创 2021-12-06 10:09:05 · 8759 阅读 · 5 评论 -
Matlab底层源代码实现Halcon scale_image_range(可用于背景分割)
Matlab底层源代码实现Halcon scale_image_range效果(可用于背景分割)原创 2022-07-05 12:03:22 · 1318 阅读 · 0 评论 -
Halcon中亚像素边缘,轮廓提取处理的各种方法
halcon中亚像素轮廓提取目前来看,提取亚像素轮廓有三种思路原创 2022-11-05 21:06:16 · 6602 阅读 · 3 评论 -
Matlab底层算法实现直方图均衡
直方图均衡常用于图像处理预处理过程中,对于灰度的矫正具有十分优良的效果原创 2022-07-05 12:32:43 · 1035 阅读 · 1 评论 -
Matlab底层源码实现图像动态二值化
Matlab底层源代码实现图像动态二值化原创 2022-07-05 12:40:09 · 664 阅读 · 0 评论 -
Matlab底层源代码实现图像的中值滤波(用于消除图像上一些杂点)
Matlab底层源代码实现图像的中值滤波(用于消除图像上一些杂点)原创 2022-07-26 20:57:28 · 1935 阅读 · 0 评论 -
Matlab底层源代码实现Halcon scale_image_max算子效果
Matlab底层源代码实现Halcon scale_image_max效果原创 2022-07-05 12:14:08 · 951 阅读 · 0 评论 -
Matlab底层源代码实现图像开闭操作(与Halcon效果一致)
图像灰度的开闭操作属于图像处理的基础,这里主要展示根据原理,来编写底层的函数代码。首先实现Matlab对图像区域的腐蚀与膨胀函数。原创 2022-10-26 19:06:02 · 1448 阅读 · 0 评论 -
Halcon图像分割总结
在机器视觉项目当中,选定特定的图像区域,再此基础上做进一步处理,需要对图像区域分割,分割的方法有很多种,对于具体项目而言,不同的图像分割方法适用的场景不同,因此需要对特定的场景选择特定的图像分割方法,这里对图像区域分割方法做总结。全局阈值分割:在整幅图像中根据灰度阈值进行分割;提取灰度值范围在grayMin到grayMax的区域。可以直接在主程序窗口输入,也可以采用halcon提供的灰度直方图窗口拉拖最大最小值范围,可以实时的看到提取的区域的变化。选中阈值,可以实时看到选中的区域变化适合于直方图存原创 2022-11-05 20:41:04 · 4384 阅读 · 0 评论 -
ISP算法-----Gamma实现
通过Gamma,亮处的像素点发生非线性变换,如图所示,此时,亮处的对比度增加,暗处的对比度降低;从图像增强、图像处理的角度来说gamma,gamma可以提高或者降低亮/暗处的对比度。可以看到,经过Gamma变换后,亮处对比度提高,暗处对比度降低;从数学角度看gamma实际是一个值域范围(0,1)的指数运算;对于显示硬件而言,gamma是成像设备到显示设备的传递;经过Gamma=0.5变换后。原创 2023-03-16 22:53:04 · 827 阅读 · 0 评论 -
Matlab,C/C++语言读取RAW图和保存RAW图
何为raw图?对于图像传感器而言,传感器数据每个像素点是RGGB等(排列方式有很多种),此时并不能看见颜色等信息,这种原始数据的图像,便是raw图。对于ISP算法工程师而言,查看RAW图十分重要,这里提供了一些查看RAW图的源代码。原创 2022-11-03 23:41:05 · 4551 阅读 · 5 评论 -
ISP算法----基本DPC算法实现代码
何为坏点?坏点指的是芯片加工过程中一些电子元器件的损坏,不会呈现图像的像素点,最终效果是图像上的黑点。坏点产生的原因:DPC算法的作用:Bayer模式下坏点矫正。基本POINT算法矫正原理:坏点往往是一个邻域内极亮或极暗的点,以5*5邻域为检测区域。附上Matlab读取RAW图的程序DPC效果原创 2022-11-03 23:00:30 · 1502 阅读 · 0 评论 -
ISP算法----AWB总结及源代码
AWB算法的必要性:对于彩色相机成像而言,AWB算法可以矫正颜色,视觉效果上看,颜色更符合人眼效果。光学原理:人眼对于颜色具有恒常性。从数学角度来看:所有AWB算法都是调节R,G,B三通道的增益值;所有手动调节白平衡便是人工输入三通道的增益值。原创 2022-09-10 22:41:22 · 3726 阅读 · 3 评论