美文网首页
erode(腐蚀)

erode(腐蚀)

作者: itfitness | 来源:发表于2019-08-05 16:18 被阅读0次

    概念

    膨胀操作是将图像A与任意形状的结构元素B进行卷积,而结构元素B拥有一个可定义的参考点,我们称之为锚点,进行膨胀操作时就是将结构元素B划过图像A(也成为卷积),并将B覆盖区域的像素点的最小值赋给参考点指定的像素,这一操作会使图像中的暗区域逐渐扩展,因此我们称它为腐蚀。

    效果图对比

    ●源图像



    ●处理后图像


    函数讲解

    ●函数原型
    ○c++

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

    ○Android

    void erode(Mat src, Mat dst, Mat kernel, Point anchor, int iterations, int borderType, Scalar borderValue)
    

    ●参数解释
    ○src:源图像Mat对象
    ○dst:目标图像Mat对象
    ○kernel:用于膨胀操作的结构元素,如果取值为Mat(),那么默认使用一个3 x 3 的方形结构元素,可以使用getStructuringElement()来创建结构元素
    ○anchor:参考点,其默认值为(-1,-1)说明位于kernel的中心位置。
    ○borderType :边缘类型,默认为BORDER_CONSTANT。
    ○borderValue :边缘值,用它的默认值即可。

    函数使用

    ●c++中

    #include<opencv2/opencv.hpp>
    using namespace cv;
    int main() {
        Mat src = imread("C:/Users/Administrator/Desktop/wan.png");//引入源图像
        if (src.empty()) {
            return -1;
        }
        imshow("src", src);//展示源图像
        Mat dst;
        Mat kernel = getStructuringElement(MORPH_RECT,Size(3,3));//创建结构元素大小为3*3
        erode(src,dst,kernel);//腐蚀操作
        imshow("dst", dst);//展示目标图像
        waitKey(0);
        return 0;
    }
    

    ●Android中

    Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_beauty);//获取源图像Bitmap对象
    Mat src = new Mat();
    Mat dst = new Mat();
    Utils.bitmapToMat(bitmap,src);//Bitmap转换为Mat对象
    Mat kernel = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(3, 3));//获取结构元素
    Imgproc.erode(src,dst,kernel);//腐蚀操作
    Utils.matToBitmap(dst,bitmap);//Mat转换为Bitmap对象
    imageView.setImageBitmap(bitmap);
    

    相关文章

      网友评论

          本文标题:erode(腐蚀)

          本文链接:https://www.haomeiwen.com/subject/debmdctx.html