以下两幅图像中的第一幅图像rgbaMat.bmp
为RGBA
格式的5px*5px
.bmp
图像。此图像从SD卡使用Highgui.imread
读出,然后使用Imgproc.cvtColor(rgbaMat, hsvMat, Imgproc.COLOR_BGR2HSV);
导致hsvMat.bmp
(第二图像)转换为HSV
:尝试更改像素的HSV颜色,并因此获得意想不到的颜色。为什么?
以下是在MS放大到100px*100px
相同的图像画图,用于观看的目的。
然后执行以下代码后,我得到changedMat.bmp
图像给出如下,随后其放大版本。
的问题是,我所期待的,当写代码是交替的像素应该有白色(H=0, S=0, V=255
)和黑(``)色调分别如可以检查in the HSV section on this website。但是我得到的是红色和黑色。
问题是为什么?我哪里错了?
public void doProcessing(View view) {
Mat rgbaMat = Highgui.imread("/mnt/sdcard/DCIM/rgbaMat.bmp");
Mat hsvMat = new Mat();
Imgproc.cvtColor(rgbaMat, hsvMat, Imgproc.COLOR_BGR2HSV);
Highgui.imwrite("/mnt/sdcard/DCIM/hsvMat.bmp", hsvMat);//check
int counter=1;
for (int firstCoordinate = 0; firstCoordinate<hsvMat.rows(); firstCoordinate++) {
for (int secondCoordinate = 0; secondCoordinate<hsvMat.cols(); secondCoordinate++) {
Log.i(TAG, "HAPPY " + Arrays.toString(hsvMat.get(firstCoordinate, secondCoordinate)));//check
double[] pixelChannels = hsvMat.get(firstCoordinate, secondCoordinate);
if (counter%2 != 0) {
pixelChannels[0]=0;
pixelChannels[1]=0;
pixelChannels[2]=255;
} else {
pixelChannels[0]=0;
pixelChannels[1]=0;
pixelChannels[2]=0;
}
hsvMat.put(firstCoordinate, secondCoordinate, pixelChannels);
counter++;
Log.i(TAG, "HAPPY PAPPY" + Arrays.toString(hsvMat.get(firstCoordinate, secondCoordinate)));//check
}
}
Highgui.imwrite("/mnt/sdcard/DCIM/matChanged.bmp", hsvMat);//check
}
.......................................... .................................................. .................................................. .....................
编辑:
上线#11#线28打印的Log.i
语句出下面的输出,whi ch很好。
01-12 13:46:44.445: I/MainActivity(29690): HAPPY [0.0, 0.0, 164.0]
01-12 13:46:44.445: I/MainActivity(29690): HAPPY PAPPY[0.0, 0.0, 255.0]
01-12 13:46:44.445: I/MainActivity(29690): HAPPY [29.0, 252.0, 255.0]
01-12 13:46:44.445: I/MainActivity(29690): HAPPY PAPPY[0.0, 0.0, 0.0]
01-12 13:46:44.445: I/MainActivity(29690): HAPPY [0.0, 0.0, 164.0]
01-12 13:46:44.446: I/MainActivity(29690): HAPPY PAPPY[0.0, 0.0, 255.0]
01-12 13:46:44.446: I/MainActivity(29690): HAPPY [29.0, 252.0, 255.0]
01-12 13:46:44.446: I/MainActivity(29690): HAPPY PAPPY[0.0, 0.0, 0.0]
01-12 13:46:44.446: I/MainActivity(29690): HAPPY [0.0, 0.0, 164.0]
01-12 13:46:44.446: I/MainActivity(29690): HAPPY PAPPY[0.0, 0.0, 255.0]
01-12 13:46:44.446: I/MainActivity(29690): HAPPY [29.0, 252.0, 255.0]
01-12 13:46:44.447: I/MainActivity(29690): HAPPY PAPPY[0.0, 0.0, 0.0]
01-12 13:46:44.447: I/MainActivity(29690): HAPPY [0.0, 0.0, 164.0]
01-12 13:46:44.447: I/MainActivity(29690): HAPPY PAPPY[0.0, 0.0, 255.0]
01-12 13:46:44.447: I/MainActivity(29690): HAPPY [29.0, 252.0, 255.0]
01-12 13:46:44.447: I/MainActivity(29690): HAPPY PAPPY[0.0, 0.0, 0.0]
01-12 13:46:44.448: I/MainActivity(29690): HAPPY [0.0, 0.0, 164.0]
01-12 13:46:44.448: I/MainActivity(29690): HAPPY PAPPY[0.0, 0.0, 255.0]
01-12 13:46:44.448: I/MainActivity(29690): HAPPY [29.0, 252.0, 255.0]
01-12 13:46:44.448: I/MainActivity(29690): HAPPY PAPPY[0.0, 0.0, 0.0]
01-12 13:46:44.448: I/MainActivity(29690): HAPPY [0.0, 0.0, 164.0]
01-12 13:46:44.448: I/MainActivity(29690): HAPPY PAPPY[0.0, 0.0, 255.0]
01-12 13:46:44.448: I/MainActivity(29690): HAPPY [29.0, 252.0, 255.0]
01-12 13:46:44.448: I/MainActivity(29690): HAPPY PAPPY[0.0, 0.0, 0.0]
01-12 13:46:44.448: I/MainActivity(29690): HAPPY [0.0, 0.0, 164.0]
01-12 13:46:44.448: I/MainActivity(29690): HAPPY PAPPY[0.0, 0.0, 255.0]
01-12 13:46:44.449: I/MainActivity(29690): HAPPY [29.0, 252.0, 255.0]
01-12 13:46:44.449: I/MainActivity(29690): HAPPY PAPPY[0.0, 0.0, 0.0]
01-12 13:46:44.449: I/MainActivity(29690): HAPPY [0.0, 0.0, 164.0]
01-12 13:46:44.450: I/MainActivity(29690): HAPPY PAPPY[0.0, 0.0, 255.0]
01-12 13:46:44.450: I/MainActivity(29690): HAPPY [29.0, 252.0, 255.0]
01-12 13:46:44.450: I/MainActivity(29690): HAPPY PAPPY[0.0, 0.0, 0.0]
01-12 13:46:44.450: I/MainActivity(29690): HAPPY [0.0, 0.0, 164.0]
01-12 13:46:44.450: I/MainActivity(29690): HAPPY PAPPY[0.0, 0.0, 255.0]
01-12 13:46:44.450: I/MainActivity(29690): HAPPY [29.0, 252.0, 255.0]
01-12 13:46:44.451: I/MainActivity(29690): HAPPY PAPPY[0.0, 0.0, 0.0]
01-12 13:46:44.451: I/MainActivity(29690): HAPPY [0.0, 0.0, 164.0]
01-12 13:46:44.451: I/MainActivity(29690): HAPPY PAPPY[0.0, 0.0, 255.0]
01-12 13:46:44.451: I/MainActivity(29690): HAPPY [29.0, 252.0, 255.0]
01-12 13:46:44.451: I/MainActivity(29690): HAPPY PAPPY[0.0, 0.0, 0.0]
01-12 13:46:44.451: I/MainActivity(29690): HAPPY [0.0, 0.0, 164.0]
01-12 13:46:44.452: I/MainActivity(29690): HAPPY PAPPY[0.0, 0.0, 255.0]
01-12 13:46:44.452: I/MainActivity(29690): HAPPY [29.0, 252.0, 255.0]
01-12 13:46:44.452: I/MainActivity(29690): HAPPY PAPPY[0.0, 0.0, 0.0]
01-12 13:46:44.452: I/MainActivity(29690): HAPPY [0.0, 0.0, 164.0]
01-12 13:46:44.452: I/MainActivity(29690): HAPPY PAPPY[0.0, 0.0, 255.0]
01-12 13:46:44.452: I/MainActivity(29690): HAPPY [29.0, 252.0, 255.0]
01-12 13:46:44.452: I/MainActivity(29690): HAPPY PAPPY[0.0, 0.0, 0.0]
01-12 13:46:44.452: I/MainActivity(29690): HAPPY [0.0, 0.0, 164.0]
01-12 13:46:44.452: I/MainActivity(29690): HAPPY PAPPY[0.0, 0.0, 255.0]