OpenCV——硬币检测与计数的设计实现

1、阈值分割#!/usr/bin/env python3# -*- coding: utf-8 -*-""" 使用函数cv2.threshold()进行简单的阈值处理 函数原型为:threshold(src, thresh, maxval, type[, dst]) -> retval, dst 返回值 retval:当前用来对像素值进行分类的低阈值,默认情况下和参数thresh相等 dst:二值化处理后的图
摘要由CSDN通过智能技术生成

1、阈值分割

#!/usr/bin/env python3
# -*- coding: utf-8 -*-


"""
    使用函数cv2.threshold()进行简单的阈值处理
    函数原型为:threshold(src, thresh, maxval, type[, dst]) -> retval, dst
        返回值
            retval:当前用来对像素值进行分类的低阈值,默认情况下和参数thresh相等
            dst:二值化处理后的图像,像素值中只存在0或255
        参数解析:
                src:需要二值化的原图像,必须是灰度图,传入一种彩色图没有意义;
                thresh:用来对像素值进行分类的阈值;
                maxval:就是当像素值高于,有时是小于阈值时应该被赋予的新的像素值;
                type:阈值处理方式,OpenCV提供多种阈值处理方法
                        cv2.THRESH_BINARY:超过阈值部分取maxval(最大值),否则取0
                        cv2.THRESH_BINARY_INV :THRESH_BINARY的反转
                        cv2.THRESH_TRUNC :大于阈值部分设为阈值,否则不变
                        cv2.THRESH_TOZERO :大于阈值部分不改变,否则设为0
                        cv2.THRESH_TOZERO_INV :THRESH_TOZERO的反转
"""

import cv2

'1. 初始操作'
src = cv2.imread("Resources/threshold.png", 17)
img = src.copy()

'2. 灰度化——cvtColor()参数含义:1)原图  2)目标颜色空间,例如 RGB->HSV'
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow("gray", gray)

'3. 阈值分割(二值化)——threshold()参数含义:1)8位图像(灰度图)  2)比较阈值  3)输出值   4)分割属性'
'返回值函数: ret=比较阈值   thresh=二值化图像(矩阵数组)'
ret, thresh = cv2.threshold(gray, 127, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)
print(ret)

'4. 完成显示'
cv2.imshow("src Image", src)
cv2.imshow("thresh Image", thresh)
cv2.waitKey()

2、腐蚀与膨胀,开运算与闭运算

#!/usr/bin/env python3
# -*- coding: u
  • 11
    点赞
  • 91
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值