使用 OpenCV 对图像应用腐蚀操作

腐蚀是一种形态学图像处理操作,可以去除前景对象的边界。在大多数情况下,前景像素是白色的。为了对图像应用侵蚀操作,定义了内核(结构元素)。内核从左到右和从上到下遍历图像。如果内核中的所有像素都为 1,则输入图像中的前景像素将被保留。否则,像素将设置为 0。通常,腐蚀操作用于去除图像中的小物体或隔离连接的物体。

OpenCV 提供了erode对图像进行腐蚀操作的功能。

  • python示例代码
import cv2
import numpy as np

inputImg = cv2.imread('test.jpg')
inputImg = cv2.cvtColor(inputImg, cv2.COLOR_BGR2GRAY)
_, inputImg = cv2.threshold(inputImg, 0, 255, cv2.THRESH_OTSU)

kernel = np.ones((4, 4))
outputImg = cv2.erode(inputImg, kernel)

cv2.imshow('Input image', inputImg)
cv2.imshow('Output image', outputImg)
cv2.waitKey(0)
cv2.destroyAllWindows()
  • C++示例代码
#include <opencv2/opencv.hpp>

using namespace cv;

int main()
{
    Mat inputImg = imread("test.jpg");
    cvtColor(inputImg, inputImg, COLOR_BGR2GRAY);
    threshold(inputImg, inputImg, 0, 255, THRESH_OTSU);

    Mat kernel = getStructuringElement(MORPH_RECT, Size(4, 4));
    Mat outputImg;
    erode(inputImg, outputImg, kernel);

    imshow("Input image", inputImg);
    imshow("Output image", outputImg);
    waitKey(0);
    destroyAllWindows();

    return 0;
}
  • Java示例代码
package app;

import org.opencv.core.*;
import org.opencv.highgui.HighGui;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;

public class Main
{
    static { System.loadLibrary(Core.NATIVE_LIBRARY_NAME); }

    public static void main(String[] args)
    {
        Mat inputImg = Imgcodecs.imread("test.jpg");
        Imgproc.cvtColor(inputImg, inputImg, Imgproc.COLOR_BGR2GRAY);
        Imgproc.threshold(inputImg, inputImg, 0, 255, Imgproc.THRESH_OTSU);

        Mat kernel = Imgproc.getStructuringElement(Imgproc.MORPH_RECT, new Size(4, 4));
        Mat outputImg = new Mat();
        Imgproc.erode(inputImg, outputImg, kernel);

        HighGui.imshow("Input image", inputImg);
        HighGui.imshow("Output image", outputImg);
        HighGui.waitKey(0);
        HighGui.destroyAllWindows();

        System.exit(0);
    }
}

效果图:

使用 OpenCV 对图像应用腐蚀操作

本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/jishu/17437.html

(0)

相关推荐

发表回复

登录后才能评论