Matlab抠图代码.docx

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

注:显示图像后,单击鼠标左键连出完全背景区域,双击左键结束;?? ? ?图像改变后,再单击鼠标左键连出完全前景区域,双击左键结束。即可得到结果。A=imread(ppmm2.bmp);imshow(A);hold on;Threshold = 1;UniBack=[0?? ?0?? 255];% choose background object, and B results into the Foreground Object and the% Boundary Region% choose the outer line of the boundary region. Single left click the mouse to specify vertice.Double left click or single right click to finish;OuterBW = roipoly(A);B(:,:,1) = immultiply(A(:,:,1),OuterBW);B(:,:,2) = immultiply(A(:,:,2),OuterBW);B(:,:,3) = immultiply(A(:,:,3),OuterBW);Back(:,:,1) = immultiply(A(:,:,1),~OuterBW);Back(:,:,2) = immultiply(A(:,:,2),~OuterBW);Back(:,:,3) = immultiply(A(:,:,3),~OuterBW);imshow(B);% choose foreground object, and C results into a Circle of Interest% choose the inner line of the boundary region. Single left click the mouse to specify vertice.Double left click or single right click to finish;InnerBW = roipoly(B);C(:,:,1) = immultiply(B(:,:,1),~InnerBW);C(:,:,2) = immultiply(B(:,:,2),~InnerBW);C(:,:,3) = immultiply(B(:,:,3),~InnerBW);Fore(:,:,1) = immultiply(A(:,:,1),InnerBW);Fore(:,:,2) = immultiply(A(:,:,2),InnerBW);Fore(:,:,3) = immultiply(A(:,:,3),InnerBW);imshow(C);hold off;RawAlpha = (double(OuterBW)+double(InnerBW))/2;I = double(A);% Method of averaging to get raw fore and background colorsfor i = 1:size(RawAlpha,1)?? ? for j = 1:size(RawAlpha,2)?? ? ? ? RawFore(i,j,1)=0; ? ? ? ? ? ? ? ? ? ???? ? ? ? RawFore(i,j,2)=0;?? ? ? ? RawFore(i,j,3)=0;?? ? ? ? RawBack(i,j,1)=0; ? ? ? ? ? ? ? ? ? ???? ? ? ? RawBack(i,j,2)=0;?? ? ? ? RawBack(i,j,3)=0;?? ? ? ? if RawAlpha(i,j) == 1?? ? ? ? ? ? RawFore(i,j,:)=Fore(i,j,:);?? ? ? ? end;?? ? ? ? if RawAlpha(i,j) == 0?? ? ? ? ? ? RawBack(i,j,:)=Back(i,j,:);?? ? ? ? end;?? ? ? ? if RawAlpha(i,j) == 0.5?? ? ? ? ? ? r=1;?? ? ? ? ? ? while 1?? ? ? ? ? ? ? ? TestFore = InnerBW(max(i-r,1):min(i+r,size(A,1)),max(j-r,1):min(j+r,size(A,2)));?? ? ? ? ? ? ? ? if size(find(TestFore),1) ??? ? ? ? ? ? ? ? ? ? [i1, j1] = find(TestFore);?? ? ? ? ? ? ? ? ? ? i2 = i1 +

文档评论(0)

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

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档