在我的主题(getPerspectiveTransform on a non entire quadrangle)旁边,我找到了一种在大多数情况下跟踪边缘表上的小点白色的方法 . 如果我使用二进制阈值,它只有在我任意选择阈值时才有效 . 问题是边缘颜色表很受光的影响 . 所以我决定在HSV上转换我的图像并使用InRange函数,该函数仅保留我的程序确定的值之间的像素(我根据边缘表的平均值调整这些值(在大多数情况下为棕色......)) . 此函数返回一个矩阵,其中范围之间的像素设置为255,否则为0 .

我想反转这个矩阵,我的意思是用val = 0到255切换像素,用val = 255到0的像素 . 这是我的简单代码(它不起作用,它什么都不做):

for (int i=0; i<mat.rows(); i++){
    for (int j=0; j<mat.cols(); j++){
        if (mat.get(i,j).get(0)[0] == 0){
            mat.put(i,j,255);
        }
        else {
            mat.put(i,j,0);
        }
    }
}

如果有人知道如何在 JAVA 中这样做,那就太好了 .