在 MATLAB 中绘制子矩阵 (ROI)
plotting a submatrix (ROI) in MATLAB
我正在尝试 select 使用 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的区域是提取的sub matrix.Ideally红框应该在0s的区域周围。蓝线是坐标轴
问题是你应该交换 x 和 y 坐标:
img(y1:y2, x1:x2)=0;
说明
问题是 function/matrix 的 arguments/indexes 是以相反的顺序提供的:
matrix(row, column)
对比
function(x,y)
x
(第一个参数)通常表示水平轴,因此对应于 column
(第二个参数)参数和 y
和 row
的同义词。
我正在尝试 select 使用 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的区域是提取的sub matrix.Ideally红框应该在0s的区域周围。蓝线是坐标轴
问题是你应该交换 x 和 y 坐标:
img(y1:y2, x1:x2)=0;
说明
问题是 function/matrix 的 arguments/indexes 是以相反的顺序提供的:
matrix(row, column)
对比
function(x,y)
x
(第一个参数)通常表示水平轴,因此对应于 column
(第二个参数)参数和 y
和 row
的同义词。