OpenCV函数接口一览

 

import cv2 #导入OpenCV工具包

print(cv2.getVersionString()) #打印出OpenCV版本号

image =cv2.imread("opencv_logo.jpg") #读取图片文件

print(image.shape) #打印出图片的维度,如打印出的(250,250,3)为(像素横行,像素纵列,三原色)

cv2.imshow("image",image) #将图片显示到一个窗口,并一闪而过

cv2.waitKey() #按任意键关闭窗口

#OpenCV存储图像三原色的顺序为BGR,与我们常说的RGB刚好相反

cv2.imshow("blue",image[:,:,0]) #将图片的BGR灰度图分别显示在名为blue,green,red的三个窗口
cv2.imshow("green",image[:,:,1])
cv2.imshow("red",image[:,:,2])

gray =cv2.cvtColor(image,cv2.C0L0R_BGR2GRAY) #彩色图像灰度算法,将图片BGR通道做平方和加权平均

crop = image[10:170,40:200] #显示图片的一部分先行后列,从第10行到第170行,从第40列到200列

import numpy cv2 #导入numpy数据结构用来创建画布

image =np.zeros([300,300,3],dtype=np.uint8) #numpy创建画布,[300,300,3]是维度,灰度数值类型为无符号8位整数

cv2.line(image,(100,200),(250,250),(255,0,0),2) #画线段,起点为(100,200),终点为(250,250),颜色为(255,0,0)即蓝色,线段粗细为2

cv2.rectangle(image,(30,100),(60,150),(0,255,0),2) #画矩形,第一个顶点为(30,100),对角顶点为(60,150),颜色为(0,255,0)即绿色,矩形框粗细为2

cv2.circle(image,(150,100),20,(0,0,255),3) #画圆环,圆心为(150,100),半径为20,颜色为(0,0,255)即红色,圆环粗细为3

cv2.putText(image,"hello",(100,50),0,1,(255,255,255),2,1) #画字符串,字符串为hello,坐标为(100,50),字体序号为0即默认字体,字体缩放系数为1,颜色为(255,255,255)即白色,线条粗细为2,线条类型为1即实线

gauss =cv2.GaussianBlur(image,(5,5),0)#使用高斯滤波器去除噪点,高斯内核为(5,5)即5个像素,sigmaX为0即sigmaX由内核大小决定

median =cv2.medianBlur(image,5) #用中值滤波器去除噪点,内核为5

corners =cv2.goodFeaturesToTrack(gray,580,0.1,10) #获取特征点,点的个数为500,点的个数优于0.1,特征点的间距大于10个像素

template = gray[75:105,235:265] #使用索引,横行75到105,纵列235到265,正好包含了一个菱形,并赋值给template作为样本

match =cv2.matchTemplate(gray,template,cv2.TM_CCOEFF_NORMED)# 标准相关匹配算法,把待检测图像和模板都各自标准化,避免光照强度影响。gray为待检测图像,template为模板,最后赋值给match

Locations =np.where(match >= 0.9) #找出匹配系数大于0.9的匹配点并赋值给Locations

w,h = template.shape[0:2] #将模板图案的长和宽赋值给w,h

for p in zip(*locations[::-1]): #循环遍列每一个匹配点
x1,y1 = p[0], p[1]
X2,y2 =x1 + W,y1 + h

cv2.rectangle(image,(x1,y1),(x2,y2),(0,255,0),2) #在原始图像上画出每个匹配点对应的矩形框

gray = cv2.imread("opencv_logo.jpg", CV2.IMREAD_GRAYSCALE)#读取图像的灰度图

Laplacian =cv2.Laplacian(gray,cv2.CV_64F) #使用拉普拉斯算子将名为gray的图像的明暗变化梯度转为梯度图,并赋值给Laplacian

canny =cv2.Canny(gray,100,280) #canny算法边缘检测,梯度区间为100到200,梯度大于200的像素就被认定为边缘,梯度小于100的像素不会被认定为边缘,梯度在100到200之间的像素如果与边缘像素相连则也会被判定为边缘,否则不会判断为边缘

ret, binary =cv2.threshold(gray,10,255,CV2.THRESH_BINARY) #阈值算法(即二值化,二值就是黑与白,阈值算法认为图像非黑即白),10为阈值,255为最大灰度,最后把算出的值赋给binary

  • 16
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值