I created the following 50px by 50px image in Adobe PS, and the red circle has an HSV value of H=5, S=90, V=100, where the HSV scale in PS is H=0-360, S=0-100, V=0-100. The HSV scale in OpenCV is H=0-180, S=0-100, V=0-100, so in OpenCV terms, the HSV value of the red circle in the image is H= 5/2 =2.5, S= (90/100)*255 =229.5, V= (80/100)*255 =204.
The range I have given to the inRange() function in the following code snippet is H=0-10, S=50-255, V=40-255.
I stored the in my sdcard by the name of rgbaFrame.jpg.
Please refer to the code below. rgbaFrame Mat converted to HSV Mat resulted in the following image named hsvImage.jpg.
But then when the inRange method was executed, the resulting Mat was maskedImage.jpg:
public void doProcessing(View view) {
Mat rgbaFrame = Highgui.imread("/mnt/sdcard/DCIM/rgbaFrame.jpg");
Mat hsvImage = new Mat();
Imgproc.cvtColor(rgbaFrame, hsvImage, Imgproc.COLOR_RGB2HSV);
Highgui.imwrite("/mnt/sdcard/DCIM/hsvImage.jpg", hsvImage);// check
Mat maskedImage = new Mat();
/**Color Tested: In PS: H=5, S=90, V=80 | In OpenCV: H=5/2=2.5, S=90/100*255=229.5, V=80/100*255=204 (OPENCV SCALE: h=0-180, s=0-255, v=0-255) */
Core.inRange(hsvImage, new Scalar(0, 50, 40), new Scalar(10, 255, 255), maskedImage);
Highgui.imwrite("/mnt/sdcard/DCIM/maskedImage.jpg", maskedImage);// check
}
Note: The code given is a part of an SSCCE I wrote. If you think I should post the complete SSCCE, please let me know.


