Quantcast
Channel: OpenCV Q&A Forum - Latest question feed
Viewing all articles
Browse latest Browse all 19555

How to convert Mat data to byte data in Andorid by using OpenCV

$
0
0
I'd like to convert Mat data to byte data by using OpencV. My expected data format is the following: ex.) data =[112,113,0,1,0,225,........] →1,0,225 is one layer CV_8UC3 but my code(System.outprint.ln(data)) is not equal to the above data format. The Output value is "I/System.out: [B@43d1d008". How should I achieve the problem? My code: ・when I touch the screen, the Flag is to be set as "1"; then , in onCameraFrame, the Mat date is converted to byte data and execute "System.outprint.ln" . package opencv.ros.com.camera_opencv; import android.app.Activity; import android.os.Bundle; import android.view.MotionEvent; import android.view.WindowManager; import org.opencv.android.BaseLoaderCallback; import org.opencv.android.CameraBridgeViewBase; import org.opencv.android.LoaderCallbackInterface; import org.opencv.android.OpenCVLoader; import org.opencv.core.Core; import org.opencv.core.CvType; import org.opencv.core.Mat; import org.opencv.core.Scalar; import org.opencv.core.Size; import java.io.BufferedOutputStream; public class MainActivity extends Activity implements CameraBridgeViewBase.CvCameraViewListener { private CameraBridgeViewBase mCameraView; private Mat mOutputFrame; private volatile int Flag=0; private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) { @Override public void onManagerConnected(int status) { switch (status) { case LoaderCallbackInterface.SUCCESS: mCameraView.enableView(); break; default: super.onManagerConnected(status); break; } } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); mCameraView = (CameraBridgeViewBase)findViewById(R.id.camera_view); mCameraView.setCvCameraViewListener(this); } @Override public void onPause() { if (mCameraView != null) { mCameraView.disableView(); } super.onPause(); } @Override protected void onResume() { super.onResume(); OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_4, this, mLoaderCallback); } @Override public boolean onTouchEvent(MotionEvent event) { if (event.getAction()==MotionEvent.ACTION_DOWN) { Flag = 1; System.out.println( Flag ); } return true; } @Override public void onDestroy() { super.onDestroy(); if (mCameraView != null) { mCameraView.disableView(); } } @Override public void onCameraViewStarted(int width, int height) { // Mat(int rows, int cols, int type) // rows: height, cols: width mOutputFrame = new Mat(height, width, CvType.CV_8UC3); } @Override public void onCameraViewStopped() { mOutputFrame.release(); } @Override public Mat onCameraFrame(Mat inputFrame) { Mat img2 = new Mat(new Size(85,85),CvType.CV_8UC3); if(Flag==1){ Flag=0; int bufferSize = img2.channels()*img2.cols()*img2.rows(); byte [] b = new byte[bufferSize]; img2.get(0,0,b); // get all the pixels System.out.println(b); } return img2; } }

Viewing all articles
Browse latest Browse all 19555

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>