日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

OpenCV图像腐蚀函数erode()的使用

發(fā)布時間:2024/9/21 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 OpenCV图像腐蚀函数erode()的使用 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

OPenCV版本:4.4
IDE:VS2017

功能描述

通過一個特定的結(jié)構(gòu)元素腐蝕一個圖像。圖像腐蝕的過程類似于一個卷積的過程,源圖像矩陣A以及結(jié)構(gòu)元素B,B在A矩陣上依次移動,每個位置上B所覆蓋元素的最小值替換B的中心位置值(即錨點處),完成整個腐蝕的過程。

注意:所謂的腐蝕與膨脹的對象是針對圖像中的白色元素所說的。看成是圖像中的物體話會理解反。

算法通俗理解:腐蝕算法使二值圖像縮小一圈,刪除對象邊界的某些像素,其運(yùn)算過程就是使用用3X3的結(jié)構(gòu)元素,掃描二值圖像的每一個像素,用結(jié)構(gòu)元素與其覆蓋的二值圖像做“與”運(yùn)算,如果都為1,結(jié)構(gòu)圖像的該像素為1,否則為0。結(jié)果就是使二值圖像減小一圈。

函數(shù)使用一個指定的核元素去腐蝕源圖像,內(nèi)核有一個可定義的 錨點,我們叫他內(nèi)核中心點,腐蝕操作時,獲取內(nèi)核覆蓋區(qū)域最小像素值,并代替錨點的像素,最小值通過以下公式獲取:
dst(x,y)=min?(x′,y′):element(x′,y′)≠0src(x+x′,y+y′)\texttt{dst} (x,y) = \min _{(x',y'): \, \texttt{element} (x',y') \ne0 } \texttt{src} (x+x',y+y') dst(x,y)=(x,y):element(x,y)?=0min?src(x+x,y+y)
函數(shù)支持就地模式,腐蝕操作可以迭加使用多次,在多通道圖像的情況下,每個通道獨(dú)立處理。

函數(shù)原型

CV_EXPORTS_W void erode( InputArray src, OutputArray dst, InputArray kernel,Point anchor = Point(-1,-1), int iterations = 1,int borderType = BORDER_CONSTANT,const Scalar& borderValue = morphologyDefaultBorderValue() );

參數(shù)描述

  • 參數(shù) src 輸入圖像;通道的數(shù)量可以是任意的,但是深度值應(yīng)該是以下之一:
    CV_8U, CV_16U, CV_16S, CV_32F or CV_64F.

  • 參數(shù) dst 和源圖像同樣大小和類型的輸出圖像。

  • 參數(shù) kernel 用于腐蝕的結(jié)構(gòu)元素;如果element=Mat(),是一個3 x 3的矩形結(jié)構(gòu)元素. Kernel 可以通過使用getStructuringElement來創(chuàng)建。

  • 參數(shù) anchor 素中的錨點的位置,默認(rèn)是值(-1,-1),也就是說錨點在元素的中心位置。

  • 參數(shù) iterations 腐蝕的迭代次數(shù)。

  • 參數(shù) borderType像素外推方法。參見#BorderTypes, BORDER_WRAP不支持。

  • 參數(shù) borderValue 固定邊緣的情況下的邊緣值。

    參考 dilate, morphologyEx, getStructuringElement

源碼示例:

#include <iostream> #include <opencv2/opencv.hpp>int main() {cv::Mat image = cv::imread("D:\\OpenCVtest\\images\\juice.png");if (image.empty()){std::cout << "image read failed!" << std::endl;cv::waitKey(0);return 0;}cv::Mat imageDst;//自定義核cv::Mat element = cv::getStructuringElement(cv::MORPH_RECT, cv::Size(8, 8));cv::imshow("原圖", image);cv::erode(image, imageDst, element);cv::imshow("腐蝕", imageDst);cv::waitKey(0);return 0; }

運(yùn)行結(jié)果:

可見果汁杯邊緣變粗,水果的顏色變深,邊緣變粗。

總結(jié)

以上是生活随笔為你收集整理的OpenCV图像腐蚀函数erode()的使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。