OPENCV python的阈值程序

OPENCV python的阈值程序

import cv2 #opencv读取的格式是BGR
import matplotlib.pyplot as plt
import numpy as np 
img=cv2.imread('d:\picture\cat.jpg')
#图像的显示,也可以创建多个窗口
cv2.imshow('image',img) 
# 等待时间,毫秒级,0表示任意键终止
cv2.waitKey(0) 
cv2.destroyAllWindows()
rows, cols,channel = img.shape[:3]
print(rows)
print(cols)
print(channel)
cv2.imwrite('d:\picture\mycat.jpg',img)

def cv_show(name,img):
    cv2.imshow(name,img) 
    cv2.waitKey(0) 
    cv2.destroyAllWindows()

b,g,r=cv2.split(img)
rows, cols = r.shape[:2]
print(rows)
print(cols)
cv_show('red',r)


GRAY = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  # 将读取的BGR转换为HSV
cv_show('GRAY',GRAY)
ret,thresh1 = cv2.threshold(GRAY, 127, 255, cv2.THRESH_BINARY)
plt.subplot(3,3,1)
plt.imshow(thresh1,'gray');plt.axis('off');plt.title('THRESH_BINARY')

cv_show('thresh1',thresh1)

ret, thresh2 = cv2.threshold(GRAY, 127, 255, cv2.THRESH_BINARY_INV)
plt.subplot(2,3,2)
plt.imshow(thresh2);plt.axis('off');plt.title('THRESH_BINARY_INV')

ret, thresh3 = cv2.threshold(GRAY, 127, 255, cv2.THRESH_TRUNC)
plt.subplot(2,3,3)
plt.imshow(thresh3);plt.axis('off');plt.title('THRESH_TRUNC')

ret, thresh4 = cv2.threshold(GRAY, 127, 255, cv2.THRESH_TOZERO)
plt.subplot(2,3,4)
plt.imshow(thresh4);plt.axis('off');plt.title('THRESH_TOZERO')


ret, thresh5 = cv2.threshold(GRAY, 127, 255, cv2.THRESH_TOZERO_INV)
plt.subplot(2,3,5)
plt.imshow(thresh5);plt.axis('off');plt.title('THRESH_TOZERO_INV')
plt.show()


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenCV是一个开源的计算机视觉库,提供丰富的图像处理和计算机视觉算法。而Python是一种简单易学且功能强大的编程语言,它与OpenCV结合使用可以进行各种图像处理任务。 阈值分割是一种常用的图像分割方法,它将图像中的像素根据其灰度值与设定的阈值进行比较,将像素分为两个类别:大于阈值的像素为一类,小于阈值的像素为另一类。这种方法常用于图像二值化、目标检测、边缘检测等应用。 在OpenCV中,使用函数cv2.threshold()来实现阈值分割。该函数接受以下参数: - src:输入图像,必须是单通道灰度图像。 - thresh:设定的阈值。 - maxval:当像素值大于阈值时,所赋予的新值。 - type:阈值分割的类型,包括cv2.THRESH_BINARY、cv2.THRESH_BINARY_INV、cv2.THRESH_TRUNC、cv2.THRESH_TOZERO和cv2.THRESH_TOZERO_INV。 下面是一个示例代码,演示了如何使用OpenCV进行阈值分割: ```python import cv2 # 读取图像 image = cv2.imread('image.jpg', 0) # 以灰度模式读取图像 # 进行阈值分割 ret, threshold = cv2.threshold(image, 127, 255, cv2.THRESH_BINARY) # 显示原图和阈值分割结果 cv2.imshow('Original Image', image) cv2.imshow('Threshold Image', threshold) cv2.waitKey(0) cv2.destroyAllWindows() ``` 这段代码首先使用cv2.imread()函数读取一张灰度图像,然后使用cv2.threshold()函数进行阈值分割,将像素值大于127的像素设为255,小于等于127的像素设为0。最后使用cv2.imshow()函数显示原图和阈值分割结果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值