溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

OpenCV中怎么自定義濾波器

發(fā)布時(shí)間:2021-07-29 15:38:27 來(lái)源:億速云 閱讀:157 作者:Leah 欄目:大數(shù)據(jù)

OpenCV中怎么自定義濾波器,相信很多沒(méi)有經(jīng)驗(yàn)的人對(duì)此束手無(wú)策,為此本文總結(jié)了問(wèn)題出現(xiàn)的原因和解決方法,通過(guò)這篇文章希望你能解決這個(gè)問(wèn)題。

上一篇我們學(xué)習(xí)的雙邊模糊中用到了ImgProc.filter2D的函數(shù),調(diào)用之前有一個(gè)Mat卷積核的設(shè)置

OpenCV中怎么自定義濾波器

今天我們就來(lái)詳細(xì)講解一下這個(gè)的參數(shù).

還是老樣子,先在Clistitem加上對(duì)應(yīng)的這些參數(shù),這一次我們?cè)黾恿巳齻€(gè)參數(shù)

OpenCV中怎么自定義濾波器

SelitemActivity的listview加上項(xiàng)

OpenCV中怎么自定義濾波器

MainActivity的按鈕事件里加上對(duì)應(yīng)的事件

OpenCV中怎么自定義濾波器

然后在ImgDealUtil加上我們的方法

public static void CustomFilter(String command, Bitmap bmp) {
   Mat src = new Mat();
   Mat dst = new Mat();
   Utils.bitmapToMat(bmp, src);
   Mat kernel = getCustomOperator(command);
   Imgproc.filter2D(src, dst, -1, kernel, new Point(-1, -1), 0.0, Imgproc.BORDER_DEFAULT);
   Utils.matToBitmap(dst, bmp);
   src.release();
   dst.release();
   kernel.release();
}

private static Mat getCustomOperator(String command) {
   //Cvtype改為32fc1是讓均值模糊每個(gè)都改為他們的9分之1
   //row類型和cols類型都是3,正好是9格
   //put的參數(shù)里面前兩個(gè)參數(shù)是0 ,0 代表著是從最左上角第一個(gè)開(kāi)始處理,后面的data正好設(shè)置9個(gè)9分之1
   Mat kernel = new Mat(3, 3, CvType.CV_32FC1);
   if (Clistitem.IMAGE_CUSTOMBLURCOMMAND.equals(command)) {
       //put的參數(shù)里面前兩個(gè)參數(shù)是0 ,0 代表著是從最左上角第一個(gè)開(kāi)始處理,后面的data正好設(shè)置9個(gè)9分之1
       kernel.put(0, 0, 1.0 / 9.0, 1.0 / 9.0, 1.0 / 9.0, 1.0 / 9.0, 1.0 / 9.0, 1.0 / 9.0, 1.0 / 9.0, 1.0 / 9.0, 1.0 / 9.0);
   } else if (Clistitem.IMAGE_CUSTOMEDGECOMMAND.equals(command)) {
       //拉普拉斯邊緣  九宮格里最中間的8,其余的都是-1,所以就按下面的設(shè)置
       kernel.put(0, 0, -1, -1, -1, -1, 8 - 1, -1, -1, -1);
   } else if (Clistitem.IMAGE_CUSTOMBRARPENCOMMAND.equals(command)) {
       //拉普拉斯銳化  九宮格里最中間的9,其余的都是-1,所以就按下面的設(shè)置
       kernel.put(0, 0, -1, -1, -1, -1, 9 - 1, -1, -1, -1);
   }
   return kernel;
}

OpenCV中怎么自定義濾波器

OpenCV中怎么自定義濾波器

看完上述內(nèi)容,你們掌握OpenCV中怎么自定義濾波器的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI