c# OpenCvSharp Cv2.Threshold()和Cv2.AdaptiveThreshold参数说明

一、 Cv2.Threshold()二值化的函数参数说明

Cv2.Threshold()是一个用于图像二值化的函数。具体来说,它会将图像中的每一个像素的灰度值与一个阈值进行比较,大于该阈值的像素会被赋值为最大灰度值(即 255),小于该阈值的像素会被赋值为最小灰度值(即 0)。这样就可以将图像中的所有像素分为两类:黑色和白色。

函数调用

  public static double Threshold(InputArray src, OutputArray dst, double thresh, double maxval, ThresholdTypes type)

参数说明

 type参数用于指定阈值处理的类型

 代码示范

using OpenCvSharp;

public void ThresholdExample()
{
    // 读取图像
    Mat src = Cv2.ImRead("image.jpg", ImreadModes.GrayScale);

    // 应用阈值处理
    Mat dst = new Mat();
    Cv2.Threshold(src, dst, 120, 255, ThresholdTypes.Binary);

    // 显示结果
    Cv2.ImShow("Thresholded Image", dst);
    Cv2.WaitKey(0);
    Cv2.DestroyAllWindows();
}

 这个示例代码使用Cv2.Threshold函数对灰度图像进行阈值处理。函数的参数包括输入图像、输出图像、阈值、最大像素值和阈值类型。在这个例子中,阈值为120,最大像素值为255,阈值类型为二进制阈值。

二、Cv2.AdaptiveThreshold自适应阈值处理。

Cv2.AdaptiveThreshold函数是OpenCV中用来进行自适应阈值处理的函数。

自适应阈值处理是一种图像二值化的方法,不同于全局阈值处理,它不使用一个固定的阈值对整个图像进行二值化,而是根据图像的局部区域进行二值化。这种方法可以有效地处理光照不均匀的图像。

函数调用

  public static void AdaptiveThreshold(InputArray src, OutputArray dst, double maxValue, AdaptiveThresholdTypes adaptiveMethod, ThresholdTypes thresholdType, int blockSize, double c)

参数说明

 代码示范

using OpenCvSharp;

class Program
{
    static void Main(string[] args)
    {
        // 读入图像并转为灰度图
        Mat img = Cv2.ImRead("image.jpg", ImreadModes.GrayScale);

        // 使用自适应阈值处理图像
        Mat thresh = new Mat();
        Cv2.AdaptiveThreshold(img, thresh, 255, AdaptiveThresholdTypes.MeanC, ThresholdTypes.Binary, 11, 2);

        // 显示结果
        Cv2.ImShow("Adaptive Threshold", thresh);
        Cv2.WaitKey(0);
        Cv2.DestroyAllWindows();
    }
}

猜你喜欢

转载自blog.csdn.net/hb_ljj/article/details/135353551