how to get Hue chnanel using open cv in android
i am working on open cv in android, i have detect eye but hue channel is not changed.
Mat eyeball_HSV = new Mat();
Mat dest = new Mat();
Mat eye = new Mat();
eye = mRgba.submat(eye_template).clone();
List<Mat> hsv_channel = new ArrayList<Mat>();
//convert image to HSV
// Imgproc.cvtColor(eye, eyeball_RGB, Imgproc.COLOR_RGBA2RGB, 3);
Imgproc.cvtColor(eye, eyeball_HSV, Imgproc.COLOR_RGB2HSV, 0);
//Core.inRange(eyeball_HSV, new Scalar(90, 50, 50), new Scalar(130, 255, 255), dest);
// get HSV channel
//hsv_channel[0] is hue
//hsv_channel[1] is saturation
//hsv_channel[2] is visibility
Core.split(eyeball_HSV, hsv_channel);
try
{
hsv_channel.get(0).setTo(new Scalar(145));
Log.v(TAG, "Got the Channel!");
}
catch(Exception ex)
{
ex.printStackTrace();
Log.v(TAG, "Didn't get any channel");
}
Imgproc.cvtColor(eyeball_HSV, dest, Imgproc.COLOR_HSV2RGB);
Imgproc.cvtColor(dest, eye, Imgproc.COLOR_RGB2RGBA);
hsv_channel.get(0).setTo(new Scalar(145)); // only modifies a copy.
also, you've got to merge() your modified h channel back into the hsv (3chan) image
how to merge your modified h channel back into the hsv (3chan) image ??????????
look at merge()
i am getting error while using merge function ...
I want to merge V channel with the matrix .
Core.merge(hsv_channel,matrixName);
the error i am getting is
OpenCV Error: Assertion failed (checkScalar(value, type(), _value.kind(), _InputArray::MAT )) in cv::Mat& cv::Mat::setTo(cv::InputArray, cv::InputArray), file /builds/master_pack-android/opencv/modules/core/src/copy.cpp, line 472
com.example.welcome.opencvtest E/org.opencv.core.Mat: Mat::n_1setTo__JJ() caught cv::Exception: /builds/master_pack-android/opencv/modules/core/src/copy.cpp:472: error: (-215) checkScalar(value, type(), _value.kind(), _InputArray::MAT ) in function cv::Mat& cv::Mat::setTo(cv::InputArray, cv::InputArray)