使用 OpenCV 对图像进行开运算

开运算是一种形态学图像处理操作,先对图像进行腐蚀操作,再进行膨胀操作。开运算允许移除小对象,同时保留较大对象的大小。

morphologyEx带参数的函数可MORPH_OPEN用于将打开操作应用于图像。

下面是使用 OpenCV 对图像进行开运算的示例代码。

  • 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.morphologyEx(inputImg, cv2.MORPH_OPEN, 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;
    morphologyEx(inputImg, outputImg, MORPH_OPEN, 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.morphologyEx(inputImg, outputImg, Imgproc.MORPH_OPEN, 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/17431.html

(0)

相关推荐

  • OpenCV:图像直方图计算

    图像直方图为图像中像素强度的分布提供了有价值的见解。通过了解直方图,你可以获得有关图像对比度、亮度和整体色调分布的信息。这些知识对于图像增强、图像分割和特征提取等任务非常有用。 本…

    2023年7月22日
  • 使用 OpenCV 对图像进行直方图均衡化

    直方图均衡化是图像处理中的一种方法,它允许使用直方图调整图像的对比度。直方图均衡化变换像素强度值,使输出图像的直方图在整个值范围内分布更均匀。 OpenCV 提供了equalize…

    2021年11月18日
  • 使用OpenCV进行肺炎诊断检测

    肺炎是一种由感染引起的严重呼吸道疾病,特别是在高危人群中,可能会出现危及生命的并发症。必须尽快诊断和治疗肺炎,以最大限度地提高患者康复的机会。 诊断过程并不容易,需要一些医学实验室…

    2023年5月22日
  • OpenCV circle 在图像上绘制圆

    OpenCV提供了很多绘图函数,可以用来绘制各种几何形状,如直线、矩形、圆形等。 该circle函数可用于通过指定中心 x 和 y 坐标以及半径来绘制圆。 结果:

    2022年11月22日
  • 使用 OpenCV 对图像应用闭运算

    闭运算是一种图像形态学处理操作,先对图像进行膨胀操作,再进行腐蚀操作。闭运算可用于填充对象中的小孔,同时保留大孔和对象的大小。 morphologyEx带参数的函数可MORPH_C…

    2023年3月17日
  • 使用 OpenCV 获取图像大小

    在图像处理过程中,往往需要知道图像的尺寸,如宽、高、通道数等。本教程提供了如何使用 OpenCV 获取图像大小的示例。 加载图像时,根据图像类型(例如灰度图像或彩色图像)将其存储在…

    2022年11月21日

发表回复

登录后才能评论