OpenCV 是用 C++编写的
图片处理图片灰度转换
OpenCV 中有数百种关于在不同色彩空间之间转换的方法。 当前, 在计算机视觉中有三种常用的色彩空间: 灰度、 BGR、 以及 HSV(Hue, Saturation, Value)
(1) 灰度色彩空间是通过去除彩色信息来将其转换成灰阶, 灰度色彩空间对中间处理特别有效, 比如人脸识别。
(2) BGR 及蓝、 绿、 红色彩空间, 每一个像素点都由一个三元数组来表示, 分别代表蓝、 绿、 红三种颜色。 网页开发者可能熟悉另一个与之相似的颜色空间: RGB 它们只是颜色顺序上不同。
(3) HSV, H(Hue) 是色调, S(Saturation) 是饱和度, V(Value) 表示黑暗的程度(或光谱另一端的明亮程度)
灰度转换的作用就是: 转换成灰度的图片的计算强度得以降低
gray_img=cv.cvtColor(img,code=cv.COLOR_BGR2GRAY)
cv2 读取图片的通道是 BGR(蓝绿红)
PIL 读取图片的通道是 RGBimport cv2 as cv img=cv.imread('lenna.jpg') cv.imshow('input image',img) gray_img=cv.cvtColor(img,code=cv.COLOR_BGR2GRAY) cv.imshow('gray_image',gray_img) cv.waitKey(0) cv.destroyAllWindows() #保存图片 cv.imwrite('gray_lenna.jpg',gray_img)
修改图片尺寸
resize_img=cv.resize(img,dsize=(400,360))
import cv2 as cv img=cv.imread('lenna.jpg') cv.imshow('input image',img) #修改图片的尺寸 (宽度,高度) resize_img=cv.resize(img,dsize=(400,360)) print(resize_img.shape) cv.imshow('resize_img',resize_img) #如果键盘输入的是 q 时候 退出 while True: if ord('q') == cv.waitKey(0): break cv.destroyAllWindows()
读取视频
声音是不显示的,彩色的读入会变成黑白的
import cv2 vc = cv2.VideoCapture('video.mp4') #检查是否打开正确 if vc.isOpened(): open,frame = vc.read() else: open = False while open: #遍历其中一帧 ret, frame = vc.read() if frame is None: break if ret == True: gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) cv2.imshow('result',gray) #waitkey里面是每处理完一帧就得等多少ms #27是Esc键 if cv2.waitKey(10) & 0xFF == 27: break vc.release() cv2.destroyAllWindows()
OpenCV(一)——图片灰度转换(灰度图) & 修改图片尺寸(cv2.resize) & 读取视频
最新推荐文章于 2024-07-04 10:39:38 发布