图像、视频读取显示及操作
import cv2 as cv
import numpy as np
# 显示图像
def image_io_demo():
image = cv.imread("001.jpg") # BGR
h, w, c = image.shape
print(h, w, c) #长、宽、颜色通道(1080 1920 3)
cv.namedWindow("input", cv.WINDOW_AUTOSIZE)
cv.imshow("input", image) # 显示原图
gray = cv.cvtColor(image, cv.COLOR_BGR2GRAY)# 转换为灰度
print(gray.shape) # 1080 1920
cv.imshow("gray", gray)
cv.imwrite("002.jpg", gray) # 创建新图
cv.waitKey(0)
cv.destroyAllWindows()
# 视频播放
def video_io_demo():
cap = cv.VideoCapture("1.mp4") #获取视频或者摄像头(参数0、1)
while True:
ret, frame = cap.read() #按帧读取视频
if ret is not True:
break
cv.imshow("frame", frame)
c = cv.waitKey(10)
if c == 27:
break
cap.release() #释放资源
# 图像数据相关操作
def basic_ops_demo():
image = cv.imread("001.jpg") # BGR
cv.imshow("input", image)
h, w, c = image.shape #(1080 1920 3)
print(h, w, c)
mv = cv.split(image)
blob = cv.resize(image, (300, 300)) #改变图像大小为(300,300,3)
print(blob.shape) # HWC
image_blob = blob.transpose(2, 0, 1) #变换 HWC->CHW (1, 3, 300, 300)
print(image_blob.shape)
image_blob = np.expand_dims(image_blob, 0) #增加维数(1, 3, 300, 300)
print(image_blob.shape)
cv.imshow("blob", blob)
cv.waitKey(0)
cv.destroyAllWindows()
a = np.array([1, 2,3, 4, 5, 6, 9, 88, 0, 12, 14, 5, 6])
index = np.argmax(a) #x轴最大索引
print(a[index])
for row in range(h):
for col in range(w):
b, g, r = image[row, col]
print(b, g, r) #获取bgr颜色值
if __name__ == "__main__":
basic_ops_demo()
天道酬勤 循序渐进 技压群雄
浙公网安备 33010602011771号