我是Matlab的新手,我有一个涉及图像处理的项目。
我有许多RGB图像,我需要找到一种方法将失焦图像与焦点图像分开。我不需要纠正失焦的焦点,我只需要找到哪些失焦并删除它们。我已经对图像进行了FFT2
,然后使用功率谱图像的径向平均值来查看对焦或失焦之间是否存在差异,但我没有看到两者之间的差异。
我决定使用图像的渐变
[gradx,grady]=gradient(image)
然后取量级
new_image=sqrt((gradx.^2)+(grady.^2))
并尝试立即使用new_image
而不是image
进行FFT2
。功率谱看起来不像我期望的那样,所以我不确定我是否应该分别对gradx
和grady
的new_image
进行FFT2
。有没有人对这是否是正确的方法有任何想法?
我也在想,与其使用渐变来使用索贝尔蒙版,不如使用 Sobel 蒙版
mask=fspecial('sobel')
mask_x=imfilter(image,mask)
mask_y=imfilter(image,mask')
new_image=sqrt((mask_x.^2)+(mask_y.^2))
然后在new_image
中FFT2
,但功率谱再次不正确。我希望它从零开始,而是从最高值开始并呈指数下降。
有没有人尝试使用这种方法对图像进行分类?感谢您的阅读。
DCT而不是FFT/DFT将消除图像相对边缘之间的任何高频不连续性。