編輯:關於Android編程
KqwOpenCVBlurDemo
暗區擴張,也叫腐蝕,要實現這樣的效果,我們可以選取一個合適大小的核,用被核覆蓋的最小值代替錨點像素。
我們首先定義一個合適大小的核
Mat kernelErode = Imgproc.getStructuringElement(Imgproc.MORPH_ELLIPSE, new Size(5, 5));
然後調用Imgproc.erode()方法把圖像的暗區放大
// 擴大暗區(腐蝕)
Imgproc.erode(src, src, kernelErode);
封裝
/**
* 擴大圖片暗區(腐蝕圖片)
*
* @param bitmap 要處理的圖片
*/
public void erode(Bitmap bitmap) {
// 使用RxJava處理圖片
if (null != mSubscriber)
Observable
.just(bitmap)
.map(new Func1() {
@Override
public Bitmap call(Bitmap bitmap) {
// Bitmap轉為Mat
Mat src = new Mat(bitmap.getHeight(), bitmap.getWidth(), CvType.CV_8UC4);
Utils.bitmapToMat(bitmap, src);
// 定義一個合適大小的核
Mat kernelErode = Imgproc.getStructuringElement(Imgproc.MORPH_ELLIPSE, new Size(5, 5));
// 擴大暗區(腐蝕)
Imgproc.erode(src, src, kernelErode);
// Mat轉Bitmap
Bitmap processedImage = Bitmap.createBitmap(src.cols(), src.rows(), Bitmap.Config.ARGB_8888);
Utils.matToBitmap(src, processedImage);
return processedImage;
}
})
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(mSubscriber);
}
調用
// 圖片處理的工具類
mBlurUtil = new BlurUtil(new Subscriber() {
@Override
public void onCompleted() {
// 圖片處理完成
dismissProgressDialog();
}
@Override
public void onError(Throwable e) {
// 圖片處理異常
dismissProgressDialog();
}
@Override
public void onNext(Bitmap bitmap) {
// 獲取到處理後的圖片
mIvImageProcessed.setImageBitmap(bitmap);
}
});
// 擴大圖片暗區
mBlurUtil.erode(mSelectImage);
現如今,驗證碼在Android的客戶端還是非常普遍的.通過手機賬號和驗證碼直接去注冊應用賬戶的信息.很多應用都以這種方式來完成注冊.簡單的介紹一下吧.&nbs
前言畫布操作 有重疊的部分,本文會讓你更加深入的了解其中的原理。本篇的主角Matrix,是一個一直在後台默默工作的勞動模范,雖然我們所有看到View背後都有著Matrix
廢話不多說,先上效果圖在下載的時候藍色的邊會跟著下載的進度以前變化--思路:大概的思路就是在這張圖片上蓋上一層視圖,視圖裡面有畫兩個圓,內圓是顯示加載進度的,顯示的顏色是
本篇博客要做的效果圖:來個低質量動圖:這個動圖效果不是很好,實際上模糊效果應該是像上面第一張圖那樣的,後面會放出代碼,有興趣的可以試著運行一下看看效果。 先說一