Halcon学习笔记5

一、ROI

为减少计算量,只关注待检测物体或该物体周围的一片区域即可,ROI就是图像处理所关注的区域

dev_close_window()

read_image(Image_display, 'C:/Users/Desktop/code/data/display.jpg')

get_image_size(Image_display,imageWidth,imageheight)

dev_open_window(0, 0, imageWidth, imageheight, 'black', WindowHandle)

dev_display(Image_display)
*选择ROI,指定矩形顶点坐标
gen_rectangle1(ROI_0, 52, 46, 456, 574)

reduce_domain(Image_display, ROI_0, ImageReduced)

dev_open_window(0,400,imageWidth, imageheight, 'black', WindowHandle1)

dev_display(ImageReduced)

二、直方图均衡

从图像的灰度图入手,建立一个0~255灰度值的直方图,统计每个灰度直方图中出现的次数,将灰度图中对应点的灰度值记录在直方图中,对该直方图进行均衡操作,使像素的灰度值分布得更加均匀,从而增强图像的亮度

read_image(board, 'C:/Users/Desktop/code/data/boardEqu.jpg')

rgb1_to_gray(board,GrayImage)

equ_histo_image(GrayImage, ImageEquHisto)
*显示直方图
gray_histo(board,board,AbsoluteHisto1, RelativeHisto)
gray_histo(ImageEquHisto,ImageEquHisto,AbsoluteHisto2,RelativeHisto1)
dev_open_window(0, 0, 512, 512, 'black', WindowHandle)

dev_set_color('red')
gen_region_histo(Histol1,AbsoluteHisto1, 255, 255, 1)

dev_set_color('green')
gen_region_histo(Histol2,AbsoluteHisto2,255, 255, 1)

三、增强对比度

除了可以使用均衡直方图增加亮度外,还可以增强图像的对比度,对图像的边缘和细节进行增强,使其更明显

read_image(text, 'C:/Users/Desktop/code/data/text.jpg')

emphasize(text,ImageEmphasize,10, 10, 1.5)
dev_display(ImageEmphasize)

scale_image_max(text,ImageScaleMax)
dev_display(ImageScaleMax)

四、处理失焦图像

一些对焦不准的图像可能存在模糊不清的问题,需要考虑瑞锐化操作,锐化的算子有很多,如Sobel算子,Canny算子,Laplace算子等

read_image(Image, 'C:/Users/Desktop/code/data/defocusComponnet.jpg')
shock_filter(Image, SharpenedImage, 0.5, 20, 'canny', 2.5)
dev_display(SharpenedImage)

五、图像平滑与去噪

图像中会存在很多杂点和噪声,对于比较均匀的噪声,可以考虑软件的算法进行消除,如均值滤波、中值滤波、高斯滤波

1.均值滤波

原理:将像素灰度值与其邻域内的像素灰度值相加取平均值

2.中值滤波

原理:以像素为中心,取一个指定形状的邻域作为滤波器,该形状可以是正方形,也可以是圆形,将该区域内的像素灰度值进行排序,以排序结果的中间值作为灰度计算结果赋值给该区域内的像素

3.高斯滤波

原理:利用的滤波器不是简单的求平均值或是排序,而是调用一个二位离散的高斯函数,高斯滤波适用于去除高斯噪声,在HalCon中使用gauss_filter算子进行高斯滤波

read_image(Image, 'C:/Users/Desktop/code/data/marker.jpg')

mean_image(Image, ImageMean, 9, 9)
dev_display(ImageMean)

median_image(ImageMean, ImageMedian, 'circle', 1, 'continued')
dev_display(ImageMedian)

gauss_filter(ImageMedian, ImageGauss, 5)
dev_display(ImageGauss)

六、光照不均匀

步骤:

1.输入光照不均匀的彩色图像

2.分离出RGB图像,使用decompose3算子将图像分离成红绿蓝三个通道,并将每个通道单独存成一副图像

3.对每个颜色通道的图像进行直方图均衡,使其色彩过渡更加平滑

4.将平滑后的3个通道的图像重新组合成三通道的彩色图像,这里使用compose3算子将三通道图像重新组合

read_image(Image, 'C:/Users/15398613680/Desktop/Halcon机器视觉算法原理与编程实战/code/code/data/label.jpg')

decompose3(Image, Image1, Image2, Image3)

mean_image(Image1,Mean1,9, 9)

emphasize(Mean1,em1,5,5,1.5)

illuminate(em1,ImageI1,20,20,0.05)

equ_histo_image(Image2,ImageEquHisto2)
equ_histo_image(Image3,ImageEquHisto3)

compose3(ImageI1,ImageEquHisto2,ImageEquHisto3, MultiChannelImage)

dev_display(MultiChannelImage)

 

 

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值