1.分离通道:
方法一:
#coding=utf-8
import cv2
import numpy as np
img = cv2.imread('./yy.jpg')
print img.shape #(691, 500, 3)
b = np.zeros((img.shape[0], img.shape[1]), dtype=img.dtype)
g = np.zeros((img.shape[0], img.shape[1]), dtype=img.dtype)
r = np.zeros((img.shape[0], img.shape[1]), dtype=img.dtype)
b[:, :] = img[:, :, 0]
g[:, :] = img[:, :, 1]
r[:, :] = img[:, :, 2]
print b.shape #(691, 500)
print g.shape #(691, 500)
print r.shape #(691, 500)
cv2.imshow("Blue", r)
cv2.imshow("Red", g)
cv2.imshow("Green", b)
cv2.waitKey(0)
cv2.destroyAllWindows()
方法二:
import cv2
import numpy as np
img = cv2.imread('./yy.jpg')
b, g, r = cv2.split(img)
print b.shape,g.shape,r.shape #(691, 500) (691, 500) (691, 500)
cv2.imshow("Blue", r)
cv2.imshow("Red", g)
cv2.imshow("Green", b)
cv2.waitKey(0)
cv2.destroyAllWindows() #b = cv2.split(img)[0] ,g = cv2.split(img)[1] ,r = cv2.split(img)[2]
2.合并通道
merged = cv2.merge([b,g,r]) #前面分离出来的三个通道
print merged.shape #(691, 500, 3)
3.图像加文字cv2.putText()参数1:图像
参数2:文字内容
参数3:坐标位置
参数4:字体
参数5:字号
参数6:颜色
参数7:字体粗细
#coding=utf-8
import cv2
import numpy as np
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
img = cv2.imread('./yy.jpg')
cv2.namedWindow('Wuli yangyang')
cv2.putText(img,'Wuli yangyang',(20,50),cv2.FONT_HERSHEY_SIMPLEX,2,(127,127,255),2)
cv2.imshow('Wuli yangyang', img)
key = cv2.waitKey(0)
4.读取视频 cv2.VideoCapture()
参数1:可以是数字,对应摄像头编号。可以是视频名。
如果用的摄像头,下面要用循环来不断读帧。
c = cv2.VideoCapture(0)
while 1:
ret, image = c.read()
cv2.imshow("Origin", image) # 显示画面
cv2.waitKey(1) # 一定要搭配这句才出画面
5.图像加框 cv2.rectangle()参数1:图像
参数2:左上角坐标
参数3:右下角坐标
参数4:框的颜色
参数5:框的粗细
#coding=utf-8
import cv2
import numpy as np
import sys
reload(sys)
sys.setdefaultencoding('utf-8')
img = cv2.imread('./yy.jpg')
cv2.namedWindow('Wuli yangyang')
cv2.putText(img,'Wuli yangyang',(20,50),cv2.FONT_HERSHEY_SIMPLEX,2,(127,127,255),2)
cv2.rectangle(img,(100,20),(400,350),(12,127,255),2)
cv2.imwrite('./hi.png',img)
cv2.imshow('Wuli yangyang', img)
key = cv2.waitKey(0)
cv2.destroyAllWindows()