Opencv学习笔记-00

import cv2 # 引用cv类

print(cv2.getVersionString()) # 查看opencv的版本
image = cv2.imread(“J8.jpg”) # 读取图片赋给image
print(image.shape) # 打印维度 (325,550,3)325和550是横行和纵行,3是三原色彩色通道
cv2.imshow(“image”, image) # 显示image图片到image窗口
cv2.waitKey()#暂停窗口,等待键盘输入

import cv2
image=cv2.imread(“J8.jpg”)
cv2.imshow(“blue”,image[:,:, 0]) # 提取蓝色灰度图
cv2.imshow(“green”,image[:,:, 1])# 提取绿色灰度图
cv2.imshow(“red”,image[:,:, 2]) # 提取红色灰度图
gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
cv2.imshow(“gray”,gray)
cv2.waitKey()

图像的裁剪

import cv2
image=cv2.imread(“J20.jpg”)
print(image.shape) # 打印维度 (319,474,3)325和550是横行和纵行,3是三原色彩色通道
crop=image[100:270,200:400] #裁剪图片,10-170横行,40-200纵行
cv2.imshow(“crop”,crop)
cv2.waitKey()

opencv的绘制功能

import cv2
import numpy as np

image = np.zeros([300, 300, 3], dtype=np.uint8) # 绘制一个黑画布,横向300,纵向300,灰度类型是无符号8位整数
cv2.line(image,(100,200),(250,250),(255,0,0),4) # 画一个直线,线段起始位置,线段终点位置,线段颜色,线段粗细
cv2.rectangle(image,(100,200),(250,250),(0,255,0),2) # 画一个矩形,线段起始位置,对角线位置,线段颜色,线段粗细
cv2.circle(image,(100,200),20,(0,0,245),2) # 画一个圆环,线段起始位置,线段终点位置,线段颜色,线段粗细
cv2.putText(image,“hello”,(100,50),0,1,(255,255,255),2,1) #绘制字符串,字符串,坐标,字体序号,缩放系数,颜色,粗细,线条类型
cv2.imshow(“image”,image) # 显示创建对象image
cv2.waitKey()

opencv均值滤波

import cv2
image=cv2.imread(“qbs.jpg”)
gauss=cv2.GaussianBlur(image,(5,5),0) # 高斯滤波器 ,高斯内核是5的像素,西格玛x这位0,减少图片的噪点
median=cv2.medianBlur(image,5) # 中值滤波器,内核是5的像素,减少图片的噪点
cv2.imshow(“image”,image)
cv2.imshow(“gauss”,gauss)
cv2.imshow(“median”,median)
cv2.waitKey()

#图像特征的提取
import cv2
image=cv2.imread(“J11.jpg”)
gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY) #将图片变成灰度图
corners=cv2.goodFeaturesToTrack(gray,100,0.1,10) #获取图像中的特征点,最多返回500个点,点的质量优于0.1,最大间隔是10个像素
for corner in corners : #将每个特征点标记出来
x,y=corner.ravel()
cv2.circle(image,(int(x),int(y)),3,(0,0,255),-1)
cv2.imshow(“corner”,image)
cv2.waitKey()

模板匹配

import cv2
import numpy as np

image = cv2.imread(“pukc.jpg”)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) # 将图片转化位灰度图

template=gray[130:160,235:265] #设置特征区域
match=cv2.matchTemplate(gray,template,cv2.TM_CCOEFF_NORMED) #标准相关匹配算法
locations=np.where(match>=0.9)#找出匹配系数大于0.9的特征点
w,h=template.shape[0:2] # 求模板图片的上和宽
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),1)
cv2.imshow(“image”,image)
#cv2.imshow(“template”,template)
cv2.waitKey()
#图像梯度算法,梯度算法常常用来检测边缘
import cv2
gray=cv2.imread(“uh.jpg”,cv2.IMREAD_GRAYSCALE) #用参数读取灰度图
laplacian=cv2.Laplacian(gray,cv2.CV_64F) #拉普拉斯算子
canny=cv2.Canny(gray,100,200)#canny边缘检测
cv2.imshow(“gray”,gray)
cv2.imshow(“lap”,laplacian)
cv2.imshow(“canny”,canny)
cv2.waitKey()

#阈值算法(二值化),阈值下面是黑色,上面是白色
import cv2
gray=cv2.imread(“hdt.png”,cv2.IMREAD_GRAYSCALE)
ret,binary=cv2.threshold(gray,10,255,cv2.THRESH_BINARY) # 固定阈值,阈值10,灰度255
binary_adaptive=cv2.adaptiveThreshold(gray,255,cv2.ADAPTIVE_THRESH_MEAN_C,cv2.THRESH_BINARY,115,1)#自适应阈值算法
ret1,binary_otsu=cv2.threshold(gray,0,255,cv2.THRESH_BINARY +cv2.THRESH_OTSU)#日本大今算法,是聚类分析算法,不需要认为定制阈值
cv2.imshow(“gray”,gray)
cv2.imshow(“binnary”,binary)
cv2.imshow(“adaptive”,binary_adaptive)
cv2.imshow(“binary”,binary_otsu)
cv2.waitKey()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值