首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用矩形表示白点

用矩形表示白点
EN

Stack Overflow用户
提问于 2017-04-07 14:35:02
回答 2查看 78关注 0票数 0

我有一个带有白点的二值图像:

我想用一个大小相同的矩形来表示每个白点,如果可能的话,用相同的方向。有什么功能可以做到吗?我可以用RP检测每一个点:

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-04-08 01:07:46

我将计算最小的Feret直径(最短投影)与相应的角度,以及垂直投影。通常对应于最小的边框。

有关计算渡口直径的MATLAB代码,请参阅此处:http://www.crisluengo.net/archives/408

票数 1
EN

Stack Overflow用户

发布于 2017-04-07 16:38:24

您可以尝试使用regionprops,如下所示:

代码语言:javascript
复制
I = imread('tHZhy.png');
stats = regionprops(I, 'centroid', 'Orientation', 'MajorAxisLength','MinorAxisLength',  'BoundingBox');
figure
imshow(I)
hold on
for i=1:length(stats)
    xc = stats(i).Centroid;
    ma = stats(i).MajorAxisLength/2;
    mi = stats(i).MinorAxisLength/2;
    theta = -deg2rad(stats(i).Orientation);
    dx = [-ma -mi; ma -mi; ma mi; -ma mi; -ma -mi];
    R = [cos(theta) -sin(theta); sin(theta) cos(theta)]; % rotation matrix
    x = xc + dx*R';
    plot(xc(1), xc(2), 'g*');
    plot(x(:, 1), x(:, 2), 'g');
end

请注意,结果并不完美,特别是对于方形对象。因此,其原因是当它沿着对角线方向时,主要维度是最大的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43280802

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档