金牌会员
- 积分
- 1319
- 威望
- 276
- 贡献
- 983
- 兑换币
- 22
- 注册时间
- 2009-3-26
- 在线时间
- 30 小时
|
我自己用自己的算法做过
后来实际用的时候给去了。。
没有必要要那么精确,我固定只用几个点。。。
我以前的方法是解一个三角形。最后用MATLAB 计算出挑选的行坐标。。。行坐标大致的一个规律。
不过个人觉得,没有必要把图片校正。。。。。
MATLAB 给你 参考下。。。
global img;
y=zeros(255);
for i=1:1:35
for j=1:1:100
y(img(i,j))= y(img(i,j))+1;
end
end
subplot(4,2,1);
imshow(uint8(img));
subplot(4,2,3);
plot(y);
imk=edge(img,'canny',[0.1 0.57]);
subplot(4,2,5);
imshow(imk);
ax=zeros(35,100);
ay=zeros(35,100);
axmag=zeros(35,100);
aymag=zeros(35,100);
for i=1:1:34
for j=1:1:99
if(img(i,j)-img(i+1,j)>40)
axmag(i,j)=abs(img(i,j)-img(i+1,j));
ax(i,j)=1;
elseif(img(i,j)-img(i+1,j)<-40)
axmag(i,j)=abs(img(i,j)-img(i+1,j));
ax(i,j)=1;
end
if(img(i,j)-img(i,j+1)>40)
aymag(i,j)=abs(img(i,j)-img(i,j+1));
ay(i,j)=1;
elseif(img(i,j)-img(i,j+1)<-40)
aymag(i,j)=abs(img(i,j)-img(i,j+1));
ay(i,j)=1;
end
j=j+1;
end
i=i+1;
end
subplot(4,2,7);
imshow(ax);
subplot(4,2,2);
imshow(ay);
mag=sqrt((axmag.*axmag)+(aymag.*aymag));
subplot(4,2,4);
imshow(mag); |
|