更有效地分析图像的傅里叶变换?

1查看(最近30天)
Korbi.
Korbi. 2020年4月27日
评论: Korbi.于2020年5月1日
你好,
我试图通过热成像自动分析塑料部件中的碳纤维方向。
目前,该过程如下:采取傅立叶变换的图像,然后通过(移位)傅里叶变换图像的中心进行一行,并沿该线达到幅度值。
问题是,我有数百个图像,它们每个图像分成几十个子图像。傅里叶分析部分需要数小时。有没有办法比我当前的代码更快地做到这一点:
phi1 = double(rgb2gray(imread('peppers.png')));
xsize = min(大小(phi1));
fftsize = 2。^(nextpow2(xsize));
phi1m = phi1-mean2(phi1);
IMFFT = FFTSHIFT(FFT2(PHI1M,FFTSIZE,FFTSIZE)/ FFTSIZE);
imfftnorm = sqrt(imfft。*结合(imfft))/ max(max(abs(imfft)));
XMP =尺寸(IMFFT,1)/ 2;
YMP =尺寸(IMFFT,2)/ 2;
半径=圆形(FFTSIZE / 3);
imrot = imrootate(imfftnorm,-90);
AMPL =零(1800,1);
为了Ang = 1:1800
xend = xmp round(cosd(-ang / 10)*半径);
YEND = YMP-圆形(SIND( - ang / 10)*半径);
l1 = Improfile(imrot,[xmp xend],[ymp yend]);
Xend2 = XMP +圆形(COSD(-ang / 10)*半径);
YEND2 = YMP +圆形(SIND( - - ang / 10)*半径);
L2 = Improfile(IMROT,[XMP XEND2],[YMP YEND2]);
剧(Ang)= NANSUM(L1(:))+ NANSUM(L2(:));
结尾
傅里叶变换相当快,它只是for循环,尤其是采用相对长的时间的Incrofile的东西。
2评论
Korbi.
Korbi. 2020年4月27日
感谢您的答复。
我有这样的照片(左):
并希望自动识别所描绘的纤维的方向。
右侧的图片显示了相应的傅里叶变换。
通过上面的代码,我会得到这样的图形(不是同一般的图片,而是一个类似的方向略有不同的图形):
然后可以使用峰值功能来识别纤维的方向。
从我所看到的那样,如果要识别图像的区域,猪更有用,那么行不够清楚。

登录评论。

接受答案

raunak gupta
raunak gupta 于2020年5月1日
你好,
从我看到的代码 ang 为了 循环似乎在迭代之间没有依赖关系 在数据值上, 也许你可以使用 议案 替换for循环。还要确保您没有绘制输出 Improfile. 否则 代码将成为串行,因为它需要首先绘制每个数字然后向前移动。
为了更好地了解 议案 您可以参考以下内容

更多答案(0)

下载188bet金宝搏

社区宝藏狩猎

找到Matlab Central中的宝藏,并发现社区如何帮助您!

开始狩猎!