import cv2
import numpy as np
image=cv2.imread("D:\\opencv_logo.jpg")#读取图片
print(image.shape)#展示图片大小
cv2.imshow("Image",image)#展示图片
cv2.waitKey()#图片停止消失
#提取三原色
cv2.imshow("blue",image[:,:,0])
cv2.imshow("green",image[:,:,1])
cv2.imshow("red",image[:,:,2])
cv2.waitKey()#图片停止消失
#裁剪图片
crop=image[10:170,40:200]#宽为10到170,长为40到200
cv2.imshow("crop",crop)
cv2.waitKey()#图片停止消失
#画线
image=np.zeros([300,300,3],dtype=np.uint8)#创建黑色画布
cv2.line(image,(100,200),(250,250),(250,0,0),2)#画线
cv2.rectangle(image,(30,100),(60,150),(250,0,0),2)#画矩形
cv2.imshow("Image",image)#展示图片
cv2.waitKey()#图片停止消失
#滤波器
images=cv2.imread("D:\\plane.jpg")#读取图片
gauss=cv2.GaussianBlur(images,(5,5),0)#滤波
cv2.imshow("Image",images)#展示图片
cv2.imshow("gauss",gauss)#展示图片
cv2.waitKey()#图片停止消失
#提取转角
image=cv2.imread("D:\\opencv_logo.jpg")#读取图片
gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)#转换为灰度图
corner=cv2.goodFeaturesToTrack(gray,500,0.1,10)#提取特征点
#标记每一个点
for corners in corner:
x, y=corners.ravel()
cv2.circle(image,(int(x),int(y)),3,(255,0,0),-1)
cv2.imshow("Image",image)#展示图片
cv2.waitKey()#图片停止消失
#匹配
image=cv2.imread("D:\\poker.jpg")#读取图片
gray=cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)#转换为灰度图
template=gray[75:105,235:265]#截取图片
match=cv2.matchTemplate(gray,template,cv2.TM_CCOEFF_NORMED)#对比图片
location=np.where(match>=0.9)#对比度
w,h=template.shape[0:2]
for p in zip(*location[::-1]):
x1,y1=p[0],p[1]
x2,y2=x1+w,y1+h
cv2.rectangle(image,(x1,y1),(x2,y2),(0,255,0),2)
cv2.imshow("Image",image)#展示图片
cv2.waitKey()#图片停止消失
#梯度图
gray=cv2.imread("D:\\opencv_logo.jpg",cv2.IMREAD_GRAYSCALE)#转换为灰度图
laplacian=cv2.Laplacian(gray,cv2.CV_64F)
caney=cv2.Canny(gray,100,200)#卡密算法
cv2.imshow("Gray",gray)#展示图片
cv2.imshow("Laplacian",laplacian)#展示图片
cv2.imshow("Caney",caney)#展示图片
cv2.waitKey()#图片停止消失
#腐蚀和膨胀
gray=cv2.imread("D:\\opencv_logo.jpg",cv2.IMREAD_GRAYSCALE)#转换为灰度图
_,binary=cv2.threshold(gray,200,255,cv2.THRESH_BINARY_INV)
kernel=np.ones((5,5),np.uint8)
erosion=cv2.erode(binary,kernel)
dilation=cv2.dilate(binary,kernel)
cv2.imshow("binary",binary)
cv2.imshow("erosion",erosion)
cv2.imshow("dilation",dilation)
cv2.waitKey()#图片停止消失
#提取摄像机图像
capture=cv2.VideoCapture(0)#获取摄像机
image=cv2.imread("D:\\opencv_logo.jpg")#读取图片
while True:
ret,frame=capture.read()#获取摄像机图像
cv2.imshow("Camera",frame)#展示摄像机图像
#按任意键退出
key=cv2.waitKey(1)
if key!=-1:
break
capture.release()
Opencv基础操作(涉及提取三原色,裁剪图片,画线,滤波器,提取转角,图像匹配,梯度图,摄像机提取)
本文介绍了使用Python的OpenCV库进行图像读取、尺寸显示、颜色通道分离、裁剪、绘制几何形状、滤波、特征点检测、模板匹配、边缘检测、腐蚀膨胀以及实时从摄像头捕获图像的基本操作。
摘要由CSDN通过智能技术生成