我正在尝试使用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;
然而,绘制的区域和子矩阵不同,如图所示:
红色框是感兴趣区域的图,0s的区域是提取的子矩阵。理想情况下,红色框应该在0s的区域附近。蓝线是轴
答案 0 :(得分:0)
问题是你应该交换x和y坐标:
img(y1:y2, x1:x2)=0;
<强>解释强>
问题是函数/矩阵的参数/索引是以相反的顺序提供的:
matrix(row, column)
与
function(x,y)
x
(第一个参数)通常表示水平轴,因此与column
({1}}和y
的{{1}}(第二个参数)参数和同义词相对应。