Opencv的基本使用

Opencv的基本使用

基本操作

1. 安装Opencv

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple opencv-contrib-python

简单快速安装教程

2. 打开图片操作

import cv2
img = cv2.imread(".pytest_cache\sources\lena.jpg")
cv2.imshow("output", img)
cv2.waitKey(0)

3. 打开视频操作

import cv2
cap = cv2.VideoCapture(".pytest_cache\sources\test_video.mp4")
while True:
    success, img = cap.read()
    if success:
        cv2.imshow("Video", img)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        cv2.destroyAllWindows()
        break

4. 打开摄像头操作

import cv2
cap = cv2.VideoCapture(0)#如果有一个摄像头就用0,大于一个用1或者其他数字
cap.set(3, 640)#设置长度,序号是3
cap.set(4, 480)#设置宽度,序号是4
cap.set(10, 200)#设置亮度,序号是10
while True:
    success, img = cap.read()
    if success:
        cv2.imshow("Video", img)
        if cv2.waitKey(1) & 0xFF == ord('q'):
            break
    else:
        cv2.destroyAllWindows()
        break

基本函数

1. 灰度函数

# 灰度函数
import cv2
img = cv2.imread(".pytest_cache\sources\lena.jpg")
imgGray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
cv2.imshow("output", imgGray)
cv2.waitKey(0)

2. 模糊函数

# 模糊函数
import cv2
img = cv2.imread(".pytest_cache\sources\lena.jpg")
imgBlur = cv2.GaussianBlur(imgGray, (7, 7), 0)#(7,7)必须是奇数对
cv2.imshow("output", imgBlur)
cv2.waitKey(0)

3. 边缘检测函数(canny)

import cv2
img = cv2.imread(".pytest_cache\sources\lena.jpg")
imgCanny=cv2.Canny(img,150,200)
cv2.imshow("output",imgCanny)

4. 膨胀函数(dilate)

#dialate
import cv2
import numpy as np
kernel = np.ones((5, 5), np.uint8)
imgDialation = cv2.dilate(imgCanny, kernel, iterations=1)
cv2.imshow("dialational img",imgDialation)

5. 侵蚀函数(erode)

import cv2
import numpy as np
kernel = np.ones((5, 5), np.uint8)
imgerode = cv2.erode(imgCanny, kernel, iterations=1)
cv2.imshow("erodional img",imgerode)

图片操作

1. 查看图片尺寸和修改尺寸

#python的坐标左上角是原点,向下是y,向右是x。
import cv2
img = cv2.imread(".pytest_cache\sources\lena.jpg")
print(img.shape)
imgResize = cv2.resize(img, (300, 200))#(宽度,高度)
cv2.imshow("imgresize", imgResize)
cv2.waitKey(0)

2.裁剪图片

import cv2
img = cv2.imread(".pytest_cache\sources\lena.jpg")
print(img.shape)
imgcropped = img[0:200, 200:500]#(高,宽)
cv2.imshow("imgresize", imgcropped)
cv2.waitKey(0)

3.设置背景图

import cv2
import numpy as np
img = np.zeros((512, 512,3), np.uint8)#全是0时候是黑色的颜色,
#此处像素点是512x512,并且3表示bgr颜色维度(在opencv中三原色是bgr)
cv2.imshow("Image", img)
cv2.waitKey(0)

4.填充颜色

import cv2
import numpy as np
img = np.zeros((512, 512, 3), np.uint8)
img[100:200, 100:200] = 255, 0,0
cv2.imshow("Image", img)
cv2.waitKey(0)

5.绘画直线

import cv2
img = np.zeros((512, 512, 3), np.uint8)
cv2.line(img, (0, 0), (300, 300), (0, 255, 0), 3)
#(图像,起点,终点,颜色,厚度)
cv2.imshow("Image", img)
cv2.waitKey(0)

6.绘画矩形

import cv2
img = np.zeros((512, 512, 3), np.uint8)
cv2.rectangle(img, (0, 0), (200, 200), (0, 0, 255), cv2.FILLED)
cv2.imshow("Image", img)
cv2.waitKey(0)

7.绘制圆形

import cv2
img = np.zeros((512, 512, 3), np.uint8)
cv2.circle(img, (400,50),30, (0, 0, 255), cv2.FILLED)
cv2.imshow("Image", img)
cv2.waitKey(0)

8.添加文本

import cv2
img = np.zeros((512, 512, 3), np.uint8)
cv2.putText(img, "OPENCV", (300, 200),
            cv2.FONT_HERSHEY_COMPLEX, 2, (0, 150, 0), 1) 
#(图像,内容,坐标,字体,字大小,颜色,厚度)
cv2.imshow("Image", img)
cv2.waitKey(0)

9.提取图片内容

import cv2
import numpy as np
img=cv2.imread("图片地址")
width,height=250,350
pts1=np.float32([],[],[],[])#所需要图片的位置左上,右上,左下,右下
pst2=np.float32([],[],[],[])#转换图片之后的位置,同上
matrix=cv2.getPerspectiveTransform(pts1,pts2)
imgoutput=cv2.warPerspectivve(img,matrix,(width,height))
cv2.imshow("imgoutput", imgoutput)
cv2.waitKey(0)

多张图片同时操作

import cv2
import numpy as np
img = cv2.imread(".pytest_cache\sources\lena.jpg")
imgHor=np.hstack((img,img))#水平合并
imgVer=np.vstack((img,img))#垂直合并0
cv2.imshow("output", imgHor)
cv2.imshow("output", imgVer)
cv2.waitKey(0)
  • 4
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值