注意路径最好都是英文
cv.imread(‘path’, cv.IMREAD_GRAYSCALE / cv.IMREAD_COLOR)
cv.cvtColor(image, cv.COLOR_BGR2GRAY) 彩色空间转换,第二个参数选择很多
cv.waitKey()
cv.imshow(‘name’, image)
cv.destoryAllWindows()
vc = cv.VideoCapture(‘path’)
ret, fame = vc.read() 返回两个值,第一个返回布尔值表示是否有图像,第二个返回图像
while True:
ret, frame = vc.read()
if frame == None:
break
if ret == True:
cv.imshow('video', frame)
if cv2.waitKey(1) & 0xFF == 27: #代表按指定的按键才推出,waitkey中的数值可控制视屏播放的速度
break #为1表示电脑性能有多快放多快
vc.release() #将变量释放,最好每次结束都释放一下
cv.destoryAllWindow()
b,g,r = cv.split(image) #切分
image = cv.merge((b,g,r)) #组合,注意参数是要元组形式
比较常见的操作,在图像变换过程中需要进行填充操作
top_size,bottom_size,left_size,right_size = (80,80,80,80) #表示上下左右需要填充的长度
'''下面是几种不同的填充方法'''
#复制法,直接复制最边缘像素
replicate = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, borderType=cv2.BORDER_REPLICATE)
#反射法 如果对感兴趣的图像在两边进行复制 fedcba|abcdefgh|hgfedcb
reflect = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size,cv2.BORDER_REFLECT)
#反射法2 对称复制 gfedcb|abcdefgh|gfedcba
reflect101 = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_REFLECT_101)
#外包装法 cdefgh|abcdefgh|abcdefg
wrap = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size, cv2.BORDER_WRAP)
#常数填充法 多了个value参数 指定value的值进行填充
constant = cv2.copyMakeBorder(img, top_size, bottom_size, left_size, right_size,cv2.BORDER_CONSTANT, value=0)
(image1+image2) #前提是格式一致
#注意:如果像素值相加超过255,则会除255取余数 如: 135+200 = 335,则 335%255=80
cv.add(iamge1, image2) #同上,但超过255则的像素显示为255
#改变图像高宽比例
cv.resize(image,(a,b)) #指定高宽
cv.resize(iamge, (0,0), fx=1, fx=3) #不指定高宽,指定高宽的比例,不要漏了(0,0)
image = cv.addWeighted(image, k1, image2, k2, b)
#函数公式: image = k1*image1 + k2*image2 + b
教程来自:https://www.bilibili.com/video/BV1oJ411D71z?p=2