在MATLAB中绘制子矩阵(ROI)

时间:2017-09-21 06:22:01

标签: matlab plot submatrix

我正在尝试使用MATLAB选择特定区域。在提取子矩阵之前,我使用plot命令定义区域。

figure,imshow(imgc,[0,3000]);
hold on;
plot([x1,x2],[y1,y1],'Color','r','LineWidth',0.5)
hold on;
plot([x1,x1],[y1,y2],'Color','r','LineWidth',0.5)
hold on;
plot([x2,x2],[y1,y2],'Color','r','LineWidth',0.5)
hold on;
plot([x1,x2],[y2,y2],'Color','r','LineWidth',0.5)
hold on;

绘图后,我提取了这个区域。

ROI=img(x1:x2,y1:y2);
img(x1:x2,y1:y2)=0;

然而,绘制的区域和子矩阵不同,如图所示:

Image

红色框是感兴趣区域的图,0s的区域是提取的子矩阵。理想情况下,红色框应该在0s的区域附近。蓝线是轴

1 个答案:

答案 0 :(得分:0)

问题是你应该交换x和y坐标:

img(y1:y2, x1:x2)=0;

<强>解释

问题是函数/矩阵的参数/索引是以相反的顺序提供的:

matrix(row, column)

function(x,y)

x(第一个参数)通常表示水平轴,因此与column({1}}和y的{​​{1}}(第二个参数)参数和同义词相对应。