- Code:
Mat footMat = new Mat();
Mat dstM = new Mat();
Utils. bitmapToMat(footbm, footMat);
Imgproc. GaussianBlur(footMat, dstM, new Size(21,21), 11, 11);
Bitmap bm = Bitmap. createBitmap(footMat.cols(), footMat.rows(),Bitmap.Config.ARGB_8888 );
Utils. matToBitmap(dstM, bm);
- wrap_content的意思是根據組件的內容自動調整組件大小
- 此段敘述表示該物件會在"textView1"的相對位置下方
- 此段敘述的效果為水平置中
- 設定最大高度
- 設定最大寬度
- 讀取圖片"cat"
5.新增完程式碼後,將最後一段程式碼中的ImageView1改成ImageView2,括弧中的footbm改為bm
1.xml描述檔說明
android:layout_width="wrap_content"2.MainActivity.java程式碼註解
// 宣告opencv matMat footMat = new Mat();
Mat dstM = new Mat();
// 將 bmp轉為 mat格式
Utils. bitmapToMat(footbm, footMat);
// 對mat做高斯模糊
Imgproc. GaussianBlur(footMat, dstM, new Size(21,21), 11, 11);
// 宣告另一個bmp 將處理好的mat轉到新的bmp
Bitmap bm = Bitmap. createBitmap(footMat.cols(), footMat.rows(),Bitmap.Config.ARGB_8888 );
Utils. matToBitmap(dstM, bm);
其中「對mat做高斯模糊」的部分,只要更改Size(21,21)中的數字ex:(41,41),就可以調整圖像改變效果的程度(銳化也是一樣),要注意的是數字必須為奇數,數值越大效果越明顯
其中的原理請參考OpenCV官方文件、高斯模糊、Filter
沒有留言:
張貼留言