MATLAB如何对比一个图像中局部图像的轮廓和我手中有的其他轮廓的图像是否相似? 20
RT,目前有大图像一张,上面分布了许多小图形(1,2,3....),然后我目前手中有许多其他图像(A,B,C。。。),如何将大图像中的小图像和其他的图像对比,找出123图...
RT,目前有大图像一张,上面分布了许多小图形(1,2,3....),然后我目前手中有许多其他图像(A,B,C。。。),如何将大图像中的小图像和其他的图像对比,找出123图像所对应的ABCD图像呢?两者图像轮廓相似,但大小、图像的旋转角度可能不同,请问MATLAB能实现吗?
展开
1个回答
展开全部
1 bwperim
根据参考资料[2]的提示,可以使用bwperim()函数进行轮廓提取,具体代码如下:
%读取原图
im = imread( filepath );
imshow(im);
title('原图');
% 转二值图像
bw = im2bw( im );
%轮廓提取
contour = bwperim(bw);
figure
imshow(contour);
title('轮廓')
原图和所提取的轮廓分别如图1和图2所示。
2 edge
可以借助edge()函数进行边界检测,算子可以选择canny,soble等等。具体代码如下:
%读取原图
im = imread( filepath );
imshow(im);
title('原图');
% 转二值图像
bw = im2bw( im );
% 边界检测
contour = edge(bw ,'canny');
figure
imshow(contour);
title('边界')
根据参考资料[2]的提示,可以使用bwperim()函数进行轮廓提取,具体代码如下:
%读取原图
im = imread( filepath );
imshow(im);
title('原图');
% 转二值图像
bw = im2bw( im );
%轮廓提取
contour = bwperim(bw);
figure
imshow(contour);
title('轮廓')
原图和所提取的轮廓分别如图1和图2所示。
2 edge
可以借助edge()函数进行边界检测,算子可以选择canny,soble等等。具体代码如下:
%读取原图
im = imread( filepath );
imshow(im);
title('原图');
% 转二值图像
bw = im2bw( im );
% 边界检测
contour = edge(bw ,'canny');
figure
imshow(contour);
title('边界')
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询