0
点赞
收藏
分享

微信扫一扫

图像二值化(1)

常用的应用如下:

  1. 物体检测和分割:在许多计算机视觉应用中,我们可能需要检测并分割图像中的物体。二值化可以帮助我们将物体背景区分开来,从而进行后续的分析和识别。
  2. 边缘检测:二值化可以用于强调图像中的边缘。这对于检测物体的外形或进行边缘检测算法的应用很有用。
  3. 图像分析和测量:在进行图像分析时,我们可能需要测量特定区域大小形状等特征。二值化可以使这些特征更加突显,便于进行测量分析
  4. 文档辨识:在文档辨识和文字提取中,常常使用二值化图像来清晰地区分文字背景,使得后续的文字识别更加准确。

cv2.threshold是OpenCV 中用于图像二值化的函数

retval , threshold_image = cv2.threshold ( src , thresh , maxval , type [ , dst ] )

  • src: 输入的灰度图像,即要进行二值化处理的原始图像。
  • thresh:二值化的阈值,超过这个阈值的像素值将被分为高于阈值或低于阈值的两个类别,具体取值根据不同的应用需求。
  • maxval: 超过阈值的像素值将被赋予的新值,通常是最大值,例如255(白色)。
  • type: 二值化操作的类型,有不同的选项,例如:
  • cv2.THRESH_BINARY: 大于阈值的像素赋予maxval小于阈值的像素赋予0
  • cv2.THRESH_BINARY_INV:与cv2.THRESH_BINARY相反大于阈值的像素赋予0小于阈值的像素赋予maxval
  • cv2.THRESH_TRUNC: 大于阈值的像素赋予阈值小于阈值的像素保持不变
  • cv2.THRESH_TOZERO: 大于阈值的像素保持不变小于阈值的像素赋予0
  • cv2.THRESH_TOZERO_INV: 与cv2.THRESH_TOZERO 相反,大于阈值的像素赋予0小于阈值的像素保持不变
  • dst(选用): 输出的二值化图像。如果未提供,则函数会修改src本身。

cv2.threshold的返回值retval是实际使用的阈值,根据不同的二值化方法,retval可能与指定的阈值thresh有所不同。threshold_image则是二值化后的图像

例字

在这个例子中,我们使用cv2.THRESH_BINARY进行二值化,阈值thresh_value为128,大于128 的像素赋予255(白色),小于等于128 的像素赋予0(黑色)。

import cv2

# 读取灰度图像
image = cv2.imread('path/to/your/image.jpg', cv2.IMREAD_GRAYSCALE)

# 二值化
thresh_value = 128
_, binary_image = cv2.threshold(image, thresh_value, 255, cv2.THRESH_BINARY)

# 显示原始图像和二值化后的图像
cv2.imshow('Original Image', image)
cv2.imshow('Binary Image', binary_image)
cv2.waitKey(0)
cv2.destroyAllWindows()

举报

相关推荐

0 条评论