本文主要是介绍Halcon图像运动模糊,虚焦模糊仿真与恢复,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
一、所谓图像运动模糊指的是,相机在拍摄运动物体时造成的拖影,图像的模糊。而虚焦模糊是相机的镜头没有在焦点位置拍照,造成的虚焦模糊。
二、Halcon针对这两张图像模糊有很好的仿真算子,以及恢复模糊图像为真实图像的算子。下面是这些算子的简介
- gen_psf_defocus
功能:产生一个均匀散焦模糊的脉冲相应。
- gen_psf_motion
功能:产生一个(线性)运动模糊的脉冲相应。
- simulate_defocus
功能:对一个图像的均匀散焦模糊进行仿真。
- simulate_motion
功能:(线性)运动模糊的仿真。
- wiener_filter
功能:通过Wiener滤波进行图像恢复。
- wiener_filter_ni
功能:通过Wiener滤波进行图像恢复。
三、案例说明
dev_close_window ()
dev_open_window (0, 0, 512, 512, ‘black’, WindowHandle)
dev_set_draw (‘margin’)
read_image (Image, ‘C:/Users/Dell/Desktop/2022_11_28_15_44_14_0588_id_36429.bmp’)
*相机拍摄运动物体模糊图像仿真
simulate_motion (Image, MovedImage, 40, 0, 3)
*利用维纳滤波恢复运动模糊的图像
mean_image (MovedImage, ImageMean, 3, 3)
get_image_size (MovedImage, Width, Height)
gen_psf_motion (Psf, Width, Height, 40, 0, 3)
wiener_filter (MovedImage, Psf, ImageMean, RestoredImage)
*相机失焦造成图像模糊仿真
simulate_defocus (Image, DefocusedImage, 40)
*利用维纳滤波恢复失焦模糊的图像
mean_image (DefocusedImage, ImageMean1, 3, 3)
get_image_size (DefocusedImage, Width, Height)
gen_psf_defocus (Psf1, Width, Height, 40)
wiener_filter (DefocusedImage, Psf1, ImageMean1, RestoredImage1)
在利用维纳滤波恢复后,与原图对比。直线和边缘仍然在一条直线上,效果很好。
原图
运动模糊图
运动模糊恢复图
失焦模糊图
失焦模糊恢复图
这篇关于Halcon图像运动模糊,虚焦模糊仿真与恢复的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!