3 halcon图像预处理

3 图像预处理

3.1 图像灰度变化

3.1.1 图像灰度变化知识点

在这里插入图片描述
在这里插入图片描述

3.1.2 程序代码
dev_open_file_dialog ('read_image', 'default', 'default', Selection)
*关闭所有的变量赋值
dev_update_off ()
read_image (Image, Selection)
rgb1_to_gray (Image, GrayImage)
*增强灰度对比
add_image (GrayImage, GrayImage, ImageResult, 0.5, 100)
*得到图像整个领域
get_domain (ImageResult, Domain)
get_region_points (Domain, Rows, Columns)
get_grayval (GrayImage, Rows, Columns, Grayval)
for Index := 0 to |Grayval|-1 by 1
    if (Grayval[Index]>100)
        Grayval[Index]:=255      
    endif
endfor
set_grayval (ImageResult, Rows, Columns, Grayval)
*对数指数
log_image (ImageResult, LogImage, 'e')
exp_image (LogImage, ExpImage, 'e')
*灰度直方图
equ_histo_image (GrayImage, ImageEquHisto)

3.2 图像滤波

3.2.1 知识点


在这里插入图片描述
备注(中值滤波、均值滤波、双边滤波、各向异性滤波等等)

3.2.2 程序代码

dev_open_file_dialog (‘read_image’, ‘default’, ‘default’, Selection)
read_image (Image, Selection)
对比99和33的结果,可知33的模糊程度低于9*9的
*mean_image (Image, ImageMean, 9, 9)
mean_image (Image, ImageMean, 9, 9)
*均值滤波
*半径越大,滤除干扰越多
median_image (ImageMean, ImageMedian, ‘circle’, 3, ‘mirrored’)
*添加白噪声
add_noise_white (Image, ImageNoise, 20)
*高斯滤波
gauss_image (ImageNoise, ImageGauss, 5)
*导向滤波

3.3 仿射变换

3.3.1 知识点

在这里插入图片描述

3.3.2程序代码

*关闭窗口
dev_close_window ()
*打开窗口
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
*读取图片
dev_open_file_dialog ('read_image', 'default', 'default', Selection)
read_image (Image, Selection)
*绘制矩形
draw_rectangle1 (WindowHandle, Row1, Column1, Row2, Column2)
*生成矩形区域
gen_rectangle1 (Rectangle, Row1, Column1, Row2, Column2)
*生成图片
reduce_domain (Image, Rectangle, ImageReduced)
*区域中心的行数和列数
area_center (Rectangle, Area, Row, Column)
*角度转化弧度
tuple_rad (45, Rad)
*点与点之间的平移矩阵
vector_angle_to_rigid (Row, Column, 0, Row, Column+50, 0, HomMat2D)
**图像旋转
affine_trans_image (ImageReduced, ImageAffinTrans, HomMat2D, 'constant', 'false')
*区域旋转
affine_trans_region (Rectangle, RegionAffineTrans, HomMat2D, 'nearest_neighbor')
*生成矩阵
hom_mat2d_identity (HomMat2DIdentity)
*图片中心
area_center (Image, Area1, Row3, Column3)
**
hom_mat2d_rotate (HomMat2DIdentity, 0.78, Column3, Row3, HomMat2DRotate)
****
affine_trans_image (ImageAffinTrans, ImageAffinTrans1, HomMat2DRotate, 'constant', 'false')

3.4 图像极坐标变换

3.4.1 知识点

###

3.4.2 程序代码

dev_close_window ()
dev_open_window (0, 0, 512, 512, 'black', WindowHandle)
dev_open_file_dialog ('read_image', 'default', 'default', Selection)
read_image (Image, Selection)
draw_circle (WindowHandle, Row, Column, Radius)
gen_circle (Circle, Row, Column, Radius)
reduce_domain (Image, Circle, ImageReduced)
*转化极坐标
polar_trans_image_ext (ImageReduced, PolarTransImage, 256, 256, 0, 6.28319, 0, 100, 512, 512, 'nearest_neighbor')
polar_trans_image_inv (PolarTransImage, XYTransImage, 256, 256, 0, 6.28319, 0, 100, 512, 512, 'nearest_neighbor')

3.5 图像的傅里叶变换

3.5.1 知识点

在这里插入图片描述

3.5.2 程序代码

*绝对路径读取
dev_open_file_dialog ('read_image', 'default', 'default', Selection)
*读取图像
read_image (Image, Selection)
*转化灰度
rgb1_to_gray (Image, GrayImage)
*傅里叶变换,可以去除噪声
fft_image (GrayImage, ImageFFT)
*图像中心
area_center (ImageFFT, Area, Row1, Column1)
*画圆
gen_circle (Circle, Row1, Column1, 20)
*画圆
gen_circle (Circle1, Row1, Column1, 100.5)
*求两圆之差
symm_difference (Circle1, Circle, RegionDifference)
*将图形合并到图像上
paint_region (RegionDifference, ImageFFT, ImageResult, 0, 'fill')
*傅里叶逆变换
fft_image_inv (ImageResult, ImageFFTInv)
  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值