opencv+Java+android 灰度图像

本文展示了如何使用OpenCV库在Android应用中处理图像,并将其从彩色转换为灰度。通过实现一个简单的Activity,演示了从资源加载图像、将图像转换为矩阵、应用颜色转换以及最终显示灰度图像的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转自:http://www.360doc.com/content/13/1103/10/14479769_326248493.shtml


public class MainActivity extends Activity implements OnClickListener {

private Button btnProc;  
private ImageView imageView;  
private Bitmap bmp;  

private BaseLoaderCallback  mLoaderCallback = new BaseLoaderCallback(this) {  
       @Override  
       public void onManagerConnected(int status) {  
           switch (status) {  
               case LoaderCallbackInterface.SUCCESS:{  
               } break;  
               default:{  
                   super.onManagerConnected(status);  
               } break;  
           }  
       }  
   };  


    @Override
    protected void onCreate(Bundle savedInstanceState) 
    { 
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.activity_main);  
        btnProc = (Button) findViewById(R.id.btn_gray_process);  
        imageView = (ImageView) findViewById(R.id.image_view); 
        bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);  
        imageView.setImageBitmap(bmp);  
        btnProc.setOnClickListener(this);  
    }


    
    public void onClick(View v) 
    {  
        Mat rgbMat = new Mat();  
        Mat grayMat = new Mat();  
        //获取lena彩色图像所对应的像素数据  
        Utils.bitmapToMat(bmp, rgbMat);  
        //将彩色图像数据转换为灰度图像数据并存储到grayMat中  
        Imgproc.cvtColor(rgbMat, grayMat, Imgproc.COLOR_RGB2GRAY);  
        //创建一个灰度图像  
        Bitmap grayBmp = Bitmap.createBitmap(bmp.getWidth(), bmp.getHeight(), Config.RGB_565);  
        //将矩阵grayMat转换为灰度图像  
        Utils.matToBitmap(grayMat, grayBmp);  
        imageView.setImageBitmap(grayBmp);  
    }  
    
    @Override  
    public void onResume(){  
        super.onResume();  
        //通过OpenCV引擎服务加载并初始化OpenCV类库,所谓OpenCV引擎服务即是  
        //OpenCV_2.4.3.2_Manager_2.4_*.apk程序包,存在于OpenCV安装包的apk目录中  
        OpenCVLoader.initAsync(OpenCVLoader.OPENCV_VERSION_3_0_0, this, mLoaderCallback);  
    }  

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值