java - Adding Two Mat of type 32FC4 in OpenCV for Android -


to reduce noise in image, trying average of 10 images.

mat imgmain = new mat(n_height, n_width, cvtype.cv_32fc4); mat imgfin = new mat(n_height, n_width, cvtype.cv_32fc4);  for(int i=1; <= 10; i++) {     //crop image     image.recycle();     image = null;     image = bitmapfactory.decodefile("/storage/sdcard0/dcim/a" + string.valueof(i) + ".jpg");     pimage = bitmap.createbitmap(image, leftoff1, topoff1, n_width, n_height);     utils.bitmaptomat(pimage, imgmain);      scaleadd(imgmain, 0.1, imgfin, imgfin);     } 

running application, following msg:

caused by: cvexception [org.opencv.core.cvexception: cv::exception: /hdd2/buildbot/slaves/slave_ardbeg1/50-sdk/opencv/modules/core/src/matmul.cpp:2079: error: (-215) src1.type() == src2.type() in function void cv::scaleadd(cv::inputarray, double, cv::inputarray, cv::outputarray) ] @ org.opencv.core.core.scaleadd_0(native method) @ org.opencv.core.core.scaleadd(core.java:6690) @ mainactivity.imageanalysis(mainactivity.java:123)

where line 123 scaleadd(imgmaing, 0.1, imgfin, imgfin);

according reference, src1, src2 , dst mat should of same size , type. however, error when set imgfin type 32fc4 not errors when imgfin set 8uc4. experience of kind? need keep floating numbers in imgfin why can't go 8uc4.

// line overwrite imgmain,  // type cv_8uc4, regardless, said before. utils.bitmaptomat(pimage, imgmain);  // so, convert float: imgmain.convertto(imgmain, cvtype.cv_32fc4);  // add float images, avoid precision loss: scaleadd(imgmain, 0.1, imgfin, imgfin); 

Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -