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。返回值为当前键盘按键值。