网站大量收购闲置独家精品文档,联系QQ:2885784924

哈夫 霍夫 变换.doc

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
哈夫 霍夫 变换

哈夫变换 利用哈夫变换数钱 clc,close all A=imread(money2.jpg); A=rgb2gray(A); A=imresize(A,0.25); figure,subplot(131),imshow(A),title(原图) BW = edge(A,roberts,0.04); subplot(132),imshow(BW),title(Roberts, thresh=0.04) se1 = strel(square,3); BW=imdilate(BW,se1); subplot(133),imshow(BW),title(imdilate,消除边界的不连续) BW=imclearborder(BW); figure,subplot(131),imshow(BW),title(imclearborder,清除边界上不相关部分) BW2=imfill(BW,holes); subplot(132),imshow(BW2),title(imfill,填补空洞) se1 = strel(square,3); BW3=bwperim(BW2); subplot(133),imshow(BW3),title(bwperim,提取边缘) [M,N]=size(A); H=zeros(M,N,round(sqrt(M^2+N^2))); for row=1:M for col=1:N if(BW3(row,col)~=0) for x0=1:M for y0=1:N r=round(sqrt((row-x0)^2+(col-y0)^2));%半径 if r~=0 H(x0,y0,r)=H(x0,y0,r)+1;%H是累加器,三维矩阵 end end end end end end %为了方便观察,将三维参数矩阵根据半径的不同做成不同的帧,制作成视频 for fn=1:360 [C,map]=gray2ind(mat2gray(H(:,:,fn),[0 90]),100); mov(fn)=im2frame(C,map); end movie2avi(mov,hough.avi) figure%在matlab内用动画的方式按半径增长的方式显示霍夫变换得到的三维矩阵 for i = 1:50 imshow(mat2gray(H(:,:,i),[0 90]));title(num2str(i)),drawnow pause(0.3); end %另一种表示方法,设定恰当的阈值,将超过阈值的点在三维空间标示出来 figure, hold on, [m,n,p]=size(H); for i=1:m i for j=1:n for k=1:p/4 if(H(i,j,k)50) colors=H(i,j,k)/125*[1 0 0]; plot3(i,j,k,.,Color,colors,MarkerSize,6); end end end end 实验结果: 由上图可见,超过累加器阈值50的点聚集为6个不同的小范围空间内,有3个半径接近21,另外3个半径接近25,假设半径小的是5毛,半径大的是1元,则可以得到结论:图中有4.5元。 实验总结: 由于不同钱币半径相差很小(比如5角和1元),所以拍照时必须小心排除阴影的干扰(比如在不同方向的光照下),而且,应该注意相机与钱币的相对角度,使得图片中钱币呈圆形。 附: 视频hough.avi,可以在暴风影音中播放

文档评论(0)

xy88118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档