【Android】显示彩色转灰度图片
来源:互联网 发布:安卓版组态软件 编辑:程序博客网 时间:2024/04/28 14:44
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; } } }}
0 0
- 【Android】显示彩色转灰度图片
- 彩色bmp图片转灰度
- WPF设置图片灰度显示与恢复彩色显示
- VC 6.0 MFC 读取并显示图片和彩色转灰度
- OpenCV分通道显示图片,灰度,融合,直方图,彩色直方图
- Android 图片转灰度
- 彩色转灰度算法
- 彩色转灰度算法
- 彩色转灰度
- 彩色转灰度算法
- 彩色转灰度算法
- 彩色转灰度算法
- bmp彩色转灰度
- 【Android】使用OpenCV彩色图像转灰度图像
- opencv判断图片是彩色还是灰度
- 彩色转灰度算法[转]
- zz 彩色转灰度算法
- 彩色图像转灰度图像
- C++11 多线程
- 20条独特的方法运用80/20法则
- 目前国内最好用最专业的前端框架-拼图响应式前端框架
- Android中的AOP编程
- 数据结构实验之查找二:平衡二叉树
- 【Android】显示彩色转灰度图片
- LeetCode:383 Ransom Note
- Android HTTP通信协议
- liunx下jdk8的安装。
- PHP程序设计读书笔记九之正则表达式
- PAT 1031Shuffling Machine (20)
- Pie--二分答案
- JDBC原生
- 设计模式学习-适配器模式(结构型)