Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Android bitwise xor error in OpenCV

I've tried bitwise xor on android but I get the following error:

04-11 00:25:47.404: E/cv::error()(7370): OpenCV Error: Sizes of input arguments do not match (The operation is neither 'array op array' (where arrays have the same size and type), nor 'array op scalar', nor 'scalar op array') in void cv::binary_op(cv::InputArray, cv::InputArray, cv::OutputArray, cv::InputArray, void (* const*)(const uchar*, size_t, const uchar*, size_t, uchar*, size_t, cv::Size, void*), bool), file /home/reports/ci/slave/50-SDK/opencv/modules/core/src/arithm.cpp, line 1021

Here is my code:

Mat temp1 = mRgba.submat(roi); 
Mat temp2 = Mat.zeros(temp1.size(), CvType.CV_8UC1);    
Core.bitwise_xor(temp1, temp2, temp1);

I've also tried to instantiate temp1 and temp2 the following way:

Mat temp1 = new Mat(height, width, CvType.CV_8UC1); 
Mat temp2 = new Mat(height, width, CvType.CV_8UC1);

But still the same error..

like image 981
Razvan Avatar asked Jul 04 '26 20:07

Razvan


1 Answers

Your code doesn't mention the type of mRgba, but from the name I assume it is RGBA, or CV_8UC4. This means that temp1 will be of the same type as mRgba. As the error states, both matrices must be of the same size and type. That means that either temp2 must be declared as type CV_8UC4 or you must first convert mRgba to CV_8UC1, perhaps via converting to greyscale. I'm not familiar with the Java interface, but the equivalent C++ call would be:

cv::cvtColor(mRgba, mRgba, CV_RGBA2GRAY);
like image 128
Aurelius Avatar answered Jul 07 '26 10:07

Aurelius



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!