用于regionprop用法的坐标文本文件 - Matlab

时间:2018-03-26 15:36:15

标签: matlab

基于前一个问题(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

1 个答案:

答案 0 :(得分: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);