将逻辑矩阵重塑为异常形状

时间:2018-02-02 06:00:09

标签: matlab

我试图在ROI围绕它移动时跟踪一个静止点。附件是ROI外观和可能发生的不同配置的示例。enter image description here

使用以下代码定义ROI区域,红点是基本的X,Y位置。

exlook = 1;
OrtD = [-101 175 124];
Xdat = [303 261 152];
Ydat = [274 314 287];

Observedpoint = [280,270]; % X,Y

Xloc = 50*cosd(-OrtD(exlook)-16.5+[0:170])+Xdat(exlook);
Yloc = 50*sind(-OrtD(exlook)-16.5+[0:170])+Ydat(exlook);
Xloc = horzcat(Xloc,Xdat(exlook));
Yloc = horzcat(Yloc,Ydat(exlook));

PolymaskXYloc = poly2mask(Xloc,Yloc,450,560);
imshow(PolymaskXYloc,[0 2]); hold on;
scatter(Observedpoint(1),Observedpoint(2),'r','filled')

我考虑使用 inpolygon ,因为matlab显示它可以根据点或点系列在该区域的位置构建逻辑矩阵。

[polin polon] = inpolygon(Xloc,Yloc,Observedpoint(1),Observedpoint(2));

问题在于我想在ROI中定义观察点的位置。应该可以使用 inpolygon ,因为程序将生成线性逻辑矩阵并标记点所在的位置。然而,由于输出是线性的,我不知道如何将线性矩阵转换回奇怪设计的ROI。

我想忘记重塑,但是从我的理解中解脱出来; Matlab总是从左边开始,然后按列生成线性数组。随着ROI的移动,这意味着每个阵列都会有效地改变。

有关如何解决此问题的任何建议?

编辑:想到它,会编制索引工作吗?

0 个答案:

没有答案