c++opencv二值化(opencv二值化函数)

c++ OpenCV 二值化

简介

二值化是一种图像处理技术,将图像中的像素值转换为只有两种可能的取值:0(黑色)或 255(白色)。这对于分割图像、识别物体和创建掩码等任务非常有用。OpenCV 提供了多种执行二值化的函数。

二值化类型

OpenCV 提供了以下类型的二值化:

二值化:

将像素值设置为 0 或 255,具体取决于它们是否低于或高于指定的阈值。

截断:

将像素值截断为 0 或 255,具体取决于它们是否低于或高于指定的阈值。

阈值移位:

将像素值移位指定的量,具体取决于它们是否低于或高于指定的阈值。

阈值取反:

将像素值取反,具体取决于它们是否低于或高于指定的阈值。

函数

OpenCV 提供了以下函数来执行二值化:

threshold:

执行基本的二值化操作。

adaptiveThreshold:

执行自适应阈值化,其中阈值根据图像的局部特征动态调整。

thresholdToZero:

将低于指定阈值的像素值设置为 0。

thresholdToZeroInv:

将高于指定阈值的像素值设置为 0。

语法

基本的二值化函数 `threshold` 的语法如下:```cpp void threshold(InputArray src, OutputArray dst, double thresh, double maxval, int type); ```其中:

`src` 是输入图像。

`dst` 是输出二值化图像。

`thresh` 是阈值。

`maxval` 是当像素值高于阈值时的输出值。

`type` 指定二值化类型。

示例

以下代码示例演示了如何使用 OpenCV 进行二值化:```cpp #include using namespace cv;int main() {Mat image = imread("input.jpg", IMREAD_GRAYSCALE);Mat binaryImage;threshold(image, binaryImage, 128, 255, THRESH_BINARY);imshow("Original Image", image);imshow("Binary Image", binaryImage);waitKey(0);return 0; } ```

优点

opencv 的二值化函数的优点包括:

易于使用且计算效率高。

提供多种二值化类型,以适应不同的需求。

允许使用自适应阈值,以根据图像内容动态调整阈值。

标签列表