opencv+Java+android 灰度影象
轉自: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);
}
}