24小时热门版块排行榜    

查看: 2713  |  回复: 22

Allen2014

铜虫 (小有名气)

引用回帖:
10楼: Originally posted by feixiaolin at 2013-11-11 20:58:37
水平方向投影图.jpg  做  FFT, 基频对应“旋转细化后的图像.jpg”条纹高度;
垂直方向投影图.jpg  取水平向阈值,可获得“旋转细化后的图像.jpg”宽度。

您好!按照您提示的进行FFT变换,我先学习了下FFT变换的意思,但是对于为何要在此处有FFT变化,以及其基频就代表条纹高度,很难理解,所以恳请您能解释一下,谢谢!
在进行FFT变换时,您提到对“水平方向投影图”,进行FFT变换。“水平方向投影图”是通过bar函数显示出来的,所以我不太理解,在接下来的FFT变换函数输出参数中,变换图像该写什么图片字母代号?
水平投影代码:
%------------------------------水平方向投影--------------------------------%
[M,N]=size(BW);      
% col(1,N)=0;
col2=zeros(1,M);
for j=1:N         
     for i=1:M
         if (img4(i,j)==1)
            col2(i)=col2(i)+img4(i,j);  
         end
     end
end
y=1:M;
figure;
bar(y,col2);
% plot(x,col);
xlabel('灰度值范围 '),ylabel('灰度值个数')  ;
title('水平方向投影');

傅里叶变换代码:
%-------------------------傅里叶变换---------------------------------------%
F1=fft2(bar);
F2=fftshift(F1);
figure,imshow(F2,'initialmagnification','fit');

运行以后,matlab命令窗口提示错误:
??? Error using ==> bar at 51
Not enough input arguments.
11楼2013-11-12 10:58:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主

引用回帖:
11楼: Originally posted by Allen2014 at 2013-11-12 10:58:53
您好!按照您提示的进行FFT变换,我先学习了下FFT变换的意思,但是对于为何要在此处有FFT变化,以及其基频就代表条纹高度,很难理解,所以恳请您能解释一下,谢谢!
在进行FFT变换时,您提到对“水平方向投影图”, ...

常规定义FFT,输入信号是时间函数、基频与时间周期有关;
这里,输入信号是空间函数【像素宽度】、基频与与空间周期有关。空间周期就是小矩形的高度。
12楼2013-11-12 12:52:08
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Allen2014

铜虫 (小有名气)

引用回帖:
12楼: Originally posted by feixiaolin at 2013-11-12 12:52:08
常规定义FFT,输入信号是时间函数、基频与时间周期有关;
这里,输入信号是空间函数【像素宽度】、基频与与空间周期有关。空间周期就是小矩形的高度。...

谢谢您的解答!关于傅里叶变换这里,我还有有困难,具体如下(代码):
%-------------------------傅里叶变换---------------------------------------%
F1=fft2(bar);
F2=fftshift(F1);
figure,imshow(F2,'initialmagnification','fit');
首先,fft2('变换输入图像'),您提到要对“水平方向投影图”进行FFT变换,所以我理解就是在fft2函数的“变换输入图像”,这里应该写“bar(y,col2);”;但是bar函数只是一个显示函数,他不能生产一幅图像,所以我运行上述算法后,系统提示错误:??? Error using ==> bar at 51
Not enough input arguments.  所以我想请教一下您,这里的“变换输入图像”应该是哪个具体参数?谢谢!
13楼2013-11-12 14:20:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主

引用回帖:
13楼: Originally posted by Allen2014 at 2013-11-12 14:20:13
谢谢您的解答!关于傅里叶变换这里,我还有有困难,具体如下(代码):
%-------------------------傅里叶变换---------------------------------------%
F1=fft2(bar);
F2=fftshift(F1);
figure,imshow(F2 ...

具体参数=(像素点排列位置,该【行】上255灰度值的像素点累加=bar的高度值
14楼2013-11-12 14:33:26
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Allen2014

铜虫 (小有名气)

引用回帖:
14楼: Originally posted by feixiaolin at 2013-11-12 14:33:26
具体参数=(像素点排列位置,该【行】上255灰度值的像素点累加=bar的高度值...

谢谢您!对于FFT2函数,采用如下调用格式:F1=fft2(X,m,n);X表示要进行的傅里叶变换的图像,m,n分别表示变换矩阵F1的行数和列数。按照您的意见,我的调用格式如下F1=fft2(Img4,y,col2),运行了以后系统提示有问题,??? Input argument "ncols" is undefined.
       Error in ==> fft2 at 21
        f = fftn(x,[mrows ncols]);
img4我在进行水平和垂直投影之前,进行细化后生产的图像img4.
请教下您,我的fft2函数的三个参数X,m,n,哪个有问题?谢谢!
15楼2013-11-12 16:05:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主

引用回帖:
15楼: Originally posted by Allen2014 at 2013-11-12 16:05:01
谢谢您!对于FFT2函数,采用如下调用格式:F1=fft2(X,m,n);X表示要进行的傅里叶变换的图像,m,n分别表示变换矩阵F1的行数和列数。按照您的意见,我的调用格式如下F1=fft2(Img4,y,col2),运行了以后系统提示有问题 ...

实话说,我没有用过你那个matlab, 也没有matlab平台。
具体函数不懂。
16楼2013-11-12 16:21:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Allen2014

铜虫 (小有名气)

引用回帖:
16楼: Originally posted by feixiaolin at 2013-11-12 16:21:32
实话说,我没有用过你那个matlab, 也没有matlab平台。
具体函数不懂。...

谢谢您!我自己在好好思考下,争取把这个难点攻克了,谢谢您!
17楼2013-11-12 16:48:20
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Allen2014

铜虫 (小有名气)

引用回帖:
16楼: Originally posted by feixiaolin at 2013-11-12 16:21:32
实话说,我没有用过你那个matlab, 也没有matlab平台。
具体函数不懂。...

您好!昨天到今天我认真的思考了您给予我的建议,关于对水平投影图进行FFT变换,求其基频的问题,我陈述一下我的个人理解,请您指教!
第一:通过对旋转后的图像进行水平方向投影,就可以得到这幅图像在每一行上面的像素点个数,最后得到的是一个一维的行向量,X坐标表示第几行,Y坐标表示这一行的点总个数,然后通过plot函数或者bar函数显示出来,就得到一个不规则(无规律)的曲线图,我们重点关注的是这个水平投影图(曲线图)中的曲线,而不是这个图片本身,不知道我的理解对吗?
第二:如果我们关注的是曲线,那么我们只要知道这个曲线的数学表达式,我们就可以对这个曲线进行FFT变换,这样就能得到这个曲线的基频,而这个基频就是我要最后需要计算得到的白色条码的高度,不知道我的理解对吗?
第三:现在的难点就是这个曲线的数学表达式怎么求出来,要不然就没有办法对其进行FFT变换,不知是否正确?
谢谢!
图像分割问题求助(已进行了一部分图像算法处理)
水平方向投影图(plot函数绘制).jpg

18楼2013-11-13 15:37:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

feixiaolin

荣誉版主 (文坛精英)

优秀版主

引用回帖:
18楼: Originally posted by Allen2014 at 2013-11-13 15:37:11
您好!昨天到今天我认真的思考了您给予我的建议,关于对水平投影图进行FFT变换,求其基频的问题,我陈述一下我的个人理解,请您指教!
第一:通过对旋转后的图像进行水平方向投影,就可以得到这幅图像在每一行上面 ...

难点就是这个曲线的数学表达式。
正确。
19楼2013-11-13 15:42:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

Allen2014

铜虫 (小有名气)

引用回帖:
19楼: Originally posted by feixiaolin at 2013-11-13 15:42:59
难点就是这个曲线的数学表达式。
正确。...

谢谢,我在思考思考!
20楼2013-11-13 15:59:16
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 Allen2014 的主题更新
信息提示
请填处理意见