我是一个新来Matlab,我有一个涉及图像处理的项目。图像重点和FFT
我有一些RGB图像,我需要找到一种方法来将焦点与焦点图像分开。我不需要纠正焦点不集中的焦点,我只需要找出哪些焦点不在焦点并将其删除。我已经对图像做了FFT2
,然后使用功率谱图像的径向平均值来查看焦点之间或焦点之外是否有差异,但我没有看到两者之间的差异。
我决定用梯度的图象
[gradx,grady]=gradient(image)
的,然后采取幅度
new_image=sqrt((gradx.^2)+(grady.^2))
并尝试使用该new_image
现在,而不是image
做FFT2
。功率谱看起来不像我期望的那样,所以我不确定是否应该分别在gradx
和grady
的new_image
上执行FFT2
。有没有人有任何想法,这是否是正确的方式来做到这一点?
我也在想,而不是使用渐变中使用的索贝尔掩盖
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
但同样的功率谱是不正确的。我期望它从零开始,而不是从最高值开始并以指数形式下降。
有没有人试图用这种方法分类图像?谢谢你的阅读。
很难直观地看到你的意思是“功率谱不正确,我期望它从零开始,而是从最高值开始,并呈指数下降。”但它暗示我可能在检查结果之前忽略调用FFTSHIFT。 – jez
'fftshift'你的光谱! – Shai
对不起,我忽略了我已经在使用FFTSHIFT。 – user3043257