opencv使用笔记

1. cv2.imread中路径包含中文时,出现找不到文件。

   使用cv2.imdecode(numpy.fromfile(file,dtype='int8'), cv2.IMREAD_COLOR)即可读取图片

   numpy.fromfile()是按指定格式读取文件

   cv2.imdecode()是从缓冲区读取文件

2. (B, G, R) = cv2.split(img)可将图片分为三通道

    cv2.merge([B, G, R])可将三通道图片合并,若只想看到其中一个通道的图片

    这时候如果单一显示B, G, R,你会看到三张灰色的图片,若想看到单一颜色的图片,需要将三通道图片合并起来

    cv2.merge([B, zeros, zeros])可看到蓝色通道的图片,依次类推。

3. adaptiveThreshold

    阈值处理是为了把三通道图像通过一个阈值转换为一个二值图,cv2.threshold函数通过一个全局阈值,将图像转换为二值图

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

    其中第二个参数为阈值,第三个参数为二元阈值THRESH_BINARY和逆二元阈值THRESH_BINARY_INV中使用的最大值。

    type为阈值类型:

    cv2.THRESH_BINARY(黑白二值) 
    cv2.THRESH_BINARY_INV(黑白二值反转) 
    cv2.THRESH_TRUNC (得到的图像为多像素值) 
    cv2.THRESH_TOZERO 
    cv2.THRESH_TOZERO_INV 

    返回值为图像和阈值。

 

    cv2.adaptiveThreshold与cv2.threshold相比,采用局部阈值

    参数为:原始图像,像素值上限,自适应方法(cv2.ADAPTIVE_THRESH_MEAN_C :领域内均值       cv2.ADAPTIVE_THRESH_GAUSSIAN_C :加权和),赋值方法(cv2.THRESH_BINARY 和cv2.THRESH_BINARY_INV),区域大小,一个常数(自适应方法得到的值减去这个常数)。

     

 

4. findContours

用于轮廓检索

输入三个参数,分别为图像、轮廓检索方式和轮廓近似算法,

第二个参数可选:cv2.RETR_EXTERNAL,cv2.RETR_LIST,cv2.RETR_CCOMP,cv2.RETR_TREE

分别对应只检测外轮廓、检测的轮廓不建立等级关系、外层轮廓和内层轮廓信息、树结构轮廓

第三个参数为轮廓近似算法可选:cv2.CHAIN_APPROX_NONE,cv2.CHAIN_APPROX_SIMPLE,cv2.CHAIN_APPROX_TC89_L1,CV_CHAIN_APPROX_TC89_KCOS

分别对应:存储所有的轮廓点;相邻的两个点的像素位置差不超过1、压缩水平方向,垂直方向,对角线方向的元素,只保留该方向的终点坐标,例如一个矩形轮廓只需4个点来保存轮廓信息;teh-Chinl chain 近似算法

返回值为轮廓坐标及对应属性。对应属性分别包含

[同一级轮廓的下个轮廓编号, 同一级轮廓的上个轮廓编号, 该轮廓包含的下一级轮廓的第一个编号, 轮廓的上一级轮廓编号]

 

参考:https://blog.csdn.net/hjxu2016/article/details/77833336

import sys
import numpy as np
import cv2
 
im = cv2.imread('t.png')
im3 = im.copy()
 
gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)   #先转换为灰度图才能够使用图像阈值化

thresh = cv2.adaptiveThreshold(gray,255,cv2.ADAPTIVE_THRESH_GAUSSIAN_C,cv2.THRESH_BINARY,11,2)  #自适应阈值化
image,contours,hierarchy = cv2.findContours(thresh,cv2.RETR_LIST,cv2.CHAIN_APPROX_SIMPLE)

for cnt in contours:
        [x,y,w,h] = cv2.boundingRect(cnt)   

5. cvtColor

颜色空间转换,RGB、HSI、HSL、HSV、HSB、YCrCb、CIE XYZ、CIE Lab多种空间中转换,还可以转换为灰度图

gray = cv2.cvtColor(im,cv2.COLOR_BGR2GRAY)

6. contourArea

cv2.contourArea(cnt) 

通过findContour()得到的边缘,计算轮廓内面积。

7. waitKey

waitKey()函数的功能是不断刷新图像,频率时间为delay,单位为ms。返回值为当前键盘按键值。

 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值