原图:
目标:删除其中的波纹,不损坏原图
如果从空间域上检测,难度比较大
现在用频域做对应变换
先变换成频谱图:
变换后,能够看见原图波纹梯度是存在于顺时针45度方向。
所以在顺时针45度方向上有亮度变换。就有很多亮度图。
目前使用的是paint_region.直白的将某个区域整个染成黑色。
将噪声波纹的傅里叶变换的区域,用黑色区域填充,代表就是过滤了波纹。
但是清晰度不够了,因为中间白色中心点有一部分是图像本身变换后形成的,所以中间多保留一些,就可以更清晰一点。
代码如下:
read_image (Image, ‘D:/项目所用图片/7.png’)
get_image_size (Image, Width, Height)
dev_open_window (0, 0, Width, Height, ‘black’, WindowHandle)
dev_display (Image)
*空间域变换到频域
fft_generic (Image, ImageFFT, 'to_freq', -1, 'sqrt', 'dc_center', 'complex')
- 左上角区域
gen_rectangle1 (region1, 8, 3, 156, 152)
*右上角区域
gen_rectangle1 (region2, 8, 164, 154, 313) - 左下角区域
gen_rectangle1 (region3, 167, 3, 314, 152)
*右下角区域
gen_rectangle1 (region4, 167, 164, 314, 313)
union2 (region1, region2, RegionUnion)
union2 (RegionUnion, region3, RegionUnion)
union2 (RegionUnion, region4, RegionUnion)
*将目标区域刷成黑色
paint_region (RegionUnion, ImageFFT, ImageFFTFiltered, 0, 'fill')
*变换成空间域
fft_generic (ImageFFTFiltered, ImageFFT1, 'from_freq', -1, 'sqrt', 'dc_center', 'complex')
版权声明:本文为yangsen001122原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。