Matlab图像处理使用for循环来检测坐标

时间:2012-09-13 13:36:50

标签: image matlab for-loop

我想在for循环中执行逻辑语句。

如果我的图像尺寸为480(高度)×640(宽度),我想在一个部分扫描图像,这部分是宽度635到640之间的整个高度。我想知道是否有任何(x,y)坐标可在单元格“cellData”中找到。该单元格包含整个(x,y)坐标列表,可以在整个图像中找到。

h = height
w = width
for h = 1:480
    for w = 635:640
        if cellData = 1;
            cellData(x,y) = SecondCoordinate(x,y);
        end
    end
end

基本上我试图在上面提到的部分中选择一个点。该点必须来自单元格“cellData”。我这样做是否正确?代码在cellData中检测到的第一个(x,y)坐标是否会被存储为“SecondCoordinate(x,y)”中的(x,y)坐标?

1 个答案:

答案 0 :(得分:3)

你应该看看find。它不仅比使用嵌套for循环的当前方法短得多,而且效率更高。

[row, col] = find(cellData)会返回cellData不为零的所有坐标。

如果cellData包含除了1和0之外的其他值,则它将是

[row, col] = find(cellData ~= 0)