Java OpenCv中矩阵的逆0和255
在我的主题()旁边,我正在寻找一种方法,在大多数情况下跟踪表边上的白色小点。如果我使用二进制阈值,它只有在我任意选择阈值时才起作用。问题是颜色表的边缘受光线的影响很大。所以我决定在HSV上转换我的图像并使用InRange函数,该函数只保留程序确定的值之间的像素(我根据边缘表的平均值调整这些值(大多数情况下为棕色…)。此函数返回一个矩阵,其中范围之间的像素设置为255,否则为0 我想反转这个矩阵,我的意思是把val=0的像素切换到255,把val=255的像素切换到0。这是我的简单代码(它不工作,什么也不做):Java OpenCv中矩阵的逆0和255,java,opencv,Java,Opencv,在我的主题()旁边,我正在寻找一种方法,在大多数情况下跟踪表边上的白色小点。如果我使用二进制阈值,它只有在我任意选择阈值时才起作用。问题是颜色表的边缘受光线的影响很大。所以我决定在HSV上转换我的图像并使用InRange函数,该函数只保留程序确定的值之间的像素(我根据边缘表的平均值调整这些值(大多数情况下为棕色…)。此函数返回一个矩阵,其中范围之间的像素设置为255,否则为0 我想反转这个矩阵,我的意思是把val=0的像素切换到255,把val=255的像素切换到0。这是我的简单代码(它不工作,
<代码> >(int i=0;In提供代码< > MAT/<代码>对象类?我猜您已经尝试过<代码> 255=Mat < /Cord>。Mat类是OpenCV库的垫子。是的,我知道它是用C++工作的,但不是java的……把<代码>类型< /Cord>参数设置为<代码>阈值HubjyIn INV< /Cord>(当然还有
max
到255
)谢谢,这是一个很好的解决方案!
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);
}
}
}