【Android】显示彩色转灰度图片
2016-08-11 20:54
357 查看
package com.duanjiwei.followopencv1; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; import org.opencv.android.BaseLoaderCallback; import org.opencv.android.OpenCVLoader; import org.opencv.android.Utils; import org.opencv.core.Mat; import org.opencv.imgproc.Imgproc; public class MainActivity extends AppCompatActivity { private Button btn; private ImageView img; private Bitmap srcBitmap; private Bitmap grayBitmap; private static boolean flag = true; private static boolean isFirst = true; private static final String TAG = "gao_chun"; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); img = (ImageView)findViewById(R.id.img); btn = (Button)findViewById(R.id.btn); btn.setOnClickListener(new ProcessClickListener()); } @Override protected void onResume() { super.onResume(); //load OpenCV engine and init OpenCV library OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_2_4_9, getApplicationContext(), mLoaderCallback); Log.i(TAG, "onResume sucess load OpenCV..."); } //OpenCV库加载并初始化成功后的回调函数 private BaseLoaderCallback mLoaderCallback = new BaseLoaderCallback(this) { @Override public void onManagerConnected(int status) { // TODO Auto-generated method stub switch (status){ case BaseLoaderCallback.SUCCESS: Log.i(TAG, "成功加载"); break; default: super.onManagerConnected(status); Log.i(TAG, "加载失败"); break; } } }; public void procSrc2Gray(){ Mat rgbMat = new Mat(); Mat grayMat = new Mat(); srcBitmap = BitmapFactory.decodeResource(getResources(), R.drawable.genie); grayBitmap = Bitmap.createBitmap(srcBitmap.getWidth(), srcBitmap.getHeight(), Bitmap.Config.RGB_565); Utils.bitmapToMat(srcBitmap, rgbMat);//convert original bitmap to Mat, R G B. Imgproc.cvtColor(rgbMat, grayMat, Imgproc.COLOR_RGB2GRAY);//rgbMat to gray grayMat Utils.matToBitmap(grayMat, grayBitmap); //convert mat to bitmap Log.i(TAG, "procSrc2Gray sucess..."); } public class ProcessClickListener implements View.OnClickListener{ @Override public void onClick(View v) { // TODO Auto-generated method stub if(isFirst){ procSrc2Gray(); isFirst = false; } if(flag){ img.setImageBitmap(grayBitmap); btn.setText("查看原图"); flag = false; }else{ img.setImageBitmap(srcBitmap); btn.setText("灰度化"); flag = true; } } } }
相关文章推荐
- OpenCV分通道显示图片,灰度,融合,直方图,彩色直方图
- OpenCV分通道显示图片,灰度,融合,直方图,彩色直方图
- WPF设置图片灰度显示与恢复彩色显示
- OpenCV分通道显示图片,灰度,融合,直方图,彩色直方图
- VC 6.0 MFC 读取并显示图片和彩色转灰度
- 从零开始Android游戏编程(第二版) 第三章 显示文字和图片
- 如何在Android当中显示网络图片
- Android 在程序界面上显示图片
- Android控件TextView显示html文件中的图片
- Android中利用OnTouchListener在ImageView中框选显示图片
- 24位真彩色转换为8位灰度图片(完整代码)
- Android根据Button状态(normal,focused,pressed)显示不同背景图片
- 在Android程序里显示自己的图片
- Android的TextView/EditText使用CharacterStyle&SpannableString来处理图片显示、字体样式、超链接等
- Android图片显示ICON——基础编
- 如何在Android当中显示网络图片
- android中的按钮以图片的方式显示_基础篇
- 在Android程序里显示网络图片
- android gif 图片显示问题
- android中显示网络图片