hellou

opencv学习(一)

  在计算机眼中,图像就是由一个个像素点组成,而像素点中,又有三个值( R ,G ,B ),也就是红、绿、蓝三个颜色,即三原色。

  故,opencv默认的读取图片的格式是RGB。

  一般格式:

import cv2
import matplotlib.pyplot as plt
import numpy as np

img=cv2.imread('C:/Users/hellou/Desktop/zhong.jpg')
"""
引号中加上需要读取的文件位置,后面也可以用 cv.IMREAD_COLOR 以及 cv.IMREAD_GRATSCALE分别表示读取彩色和灰度图像
默认条件下为读取彩色图像
"""

cv2.imshow('image',img)/''代表建立一个窗口,后面代表窗口引用的图片
cv2.waitKey(0)
'''等待时间,毫秒级。waitkey控制着imshow的持续时间,当imshow之后不跟waitkey时,相当于没有给imshow提供时间展示图像,所以只有一个空窗口一闪而过。
添加了waitkey后,哪怕仅仅是cv2.waitkey(1),我们也能截取到一帧的图像。所以cv2.imshow后边是必须要跟cv2.waitkey的。而0代表任意键终止
''

cv2.destroyAllWindows()/清理所有窗口

 



img.shape() 输出的值(h,w,c)分别代表长、宽和通道

vc = cv2.VideoCapture('C:/Users/hellou/Documents/Tencent Files/1170575902/FileRecv/111.mp4')
'''
cv2.VideoCapture()里可以用''放置我们需要读取的视频,也可以用0、1等数字分别代表我们需要的调用的摄像头'''
import cv2

#调用笔记本自带摄像头,参数使用0,调用外置USB摄像头,使用参数1
cap.set(3,640)#宽,参数3为宽度,640为数值
cap.set(4,480)#高,参数4为高度,480为数值
cap.set(10,100)#亮度,参数10为代表的亮度,数值为100

cap = cv2.VideoCapture(0) # 检查摄像头是否成功打开 if not cap.isOpened(): print("Error: Could not open camera.") exit() while True: # 读取一帧 ret, frame = cap.read()    #open得到的是一个布尔值,就是True或者False
#frame得到当前这一帧的图像


# 检查帧是否成功读取 if not ret: print("Error: Could not read frame.") break # 在窗口中显示帧 cv2.imshow('Camera', frame) # 按下'q'键退出循环 if cv2.waitKey(1) & 0xFF == ord('q'):
     #waitkey可以控制视屏播放的速度,数值越小,播放的越快
#等于27是指按下ESC键即可退出窗口
     #也可以用例如'q'来代表按下q键就能退出窗口
break # 释放摄像头资源 cap.release() # 关闭窗口 cv2.destroyAllWindows()

 


#检查通道是否打开正确
if vc.isOpened():
#vedio.read()一帧一帧的读取
#open得到的是一个布尔值,就是True或者False
#frame得到当前这一帧的图像

open, frame =vc.read()
else:
open = False

while open:
ret, frame = vc.read()
#如果读取到的帧数不为空,那么就继续读取,如果为空就退出
if frame is None:
break
if ret == True:
cv2.imshow('vc', frame)
if cv2.waitKey(10) & 0xFF == 27:
#waitkey可以控制视屏播放的速度,数值越小,播放的越快
#等于27是指按下ESC键即可退出窗口
       #也可以用例如'q'来代表按下q键就能退出窗口
break
vc.release()
cv2.destroyAllWindows()
在图像读取过程中,我们也可以截取部分的图像数据(ROI),例如:
cat=img[0:200,0:200]/前面代表h,后面代表w
cv_show('cat',cat)

颜色通道提取:
b, g, r=cv2.split(img)
也可以通过:
img[:,:,0] = 0
img[:,:,1] = 0
cv_show('R',cur_img)
该方式只保留图片的红色。

posted on 2023-06-18 14:10  云上u  阅读(24)  评论(0编辑  收藏  举报

导航