【问题标题】:plot coordinate text file for regionprop usage - Matlab绘制用于 regionprop 使用的坐标文本文件 - Matlab
【发布时间】:2018-03-27 21:23:24
【问题描述】:

基于上一个问题 (read coordinate text file for regionprop usage - Matlab) 我希望绘制具有扩展边界(零 + 10)的对象,但它不起作用。有什么原因吗?

代码:

clc;
clear;

filename = fullfile('E:/outline.txt');

fileID = fopen(filename);
C = textscan(fileID,'%d %d');
fclose(fileID);

xMax = double(max(C{1})-10)
yMax = double(max(C{2})+10)

bw=roipoly(zeros(xMax ,yMax ),C{1},C{2});
imshow(bw);
stats = regionprops(bw);

坐标文本文件内容如下:

88  10
87  11
87  12
88  13
88  14
92  21
93  22
93  23
94  24
95  25
100 33
101 34
102 34
103 34
103 33
103 32
103 31
103 30
103 29
103 28
103 27
102 26
102 25
101 24
101 23
100 22
100 21
100 20
99  19
99  18
94  12
93  12
92  12
91  11
90  11

【问题讨论】:

  • 为什么不行........
  • 可以看到图中的对象。如果我使用例如 bw=roipoly(zeros(500 ,500 ),C{1},C{2});我可以看到它,但图像很小。我正在寻找一种方法来扩展一点边界。
  • 请完整阅读minimal reproducible example并提供一份

标签: matlab


【解决方案1】:
xMax = double(max(C{1})-10)

这应该是+10。这样可以使图像小于多边形。

如果您还想在左侧扩展图像,请为您的多边形坐标添加偏移量:

bw = roipoly(zeros(yMax, xMax), C{1}+5, C{2}+5);

另请注意,我从您的代码中交换了xMaxyMax,这可能是您看到的另一个问题。矩阵维度被指定为(高度,宽度),矩阵中的索引也是如此。但是某些函数,例如roipoly,首先使用x,其次使用y。这是 MATLAB 语法的常见缺陷。

我刚刚才知道上面和上面是一样的

bw = roipoly(yMax, xMax, C{1}+5, C{2}+5);

【讨论】:

  • 谢谢。我理解逻辑,但它仍然不起作用。知道如何前进。
  • @jane:“不起作用”是什么意思?给出错误信息?返回您没想到的东西?有什么问题?
  • @jane:我刚刚注意到您的代码存在另一个问题。更新了答案。
  • 问题是 imshow(bw) 是黑色的。感谢您更新的代码。帮助很大。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-17
相关资源
最近更新 更多