1. 图片加载与显示
import cv2
import numpy as np
if __name__=="__main__":
rose = cv2.imread('./rose.jpeg')
print(rose.shape)
print(type(rose))
cv2.imshow('rose',rose) # 弹出窗口
cv2.waitKey() # 等待键盘输入,任意输入,触发这行代码,窗口消失
cv2.destroyAllWindows() # 销毁内存
2.尺寸、黑白、HSV
rose2=cv2.resize(rose,(225,225))
gray=cv2.cvtColor(rose,code=cv2.COLOR_BGR2GRAY)
hsv=cv2.cvtColor(rose,code=cv2.COLOR_BGR2HSV)
cv2.imshow('rose',gray) # 弹出窗口
cv2.waitKey(0) # 0 无限等待;1000,1000毫秒之后,自动消失
cv2.destroyAllWindows() # 销毁内存
HSV,提取蓝色文字
im1 = cv2.imread('./blue.jpeg')
im2=cv2.cvtColor(im1,code=cv2.COLOR_BGR2HSV) # 颜色空间的转变
#
lower_blue = np.array([110,50,50]) # 浅蓝色
upper_blue = np.array([130,255,255]) #深蓝色
# 根据蓝色的范围,标记图片中哪些位置是蓝色
#inRange 是否在这个范围内 lower_blue~upper_blue:蓝色
# 如果在那么就是255,不然就是0
mask = cv2.inRange(im2, lower_blue, upper_blue)
res = cv2.bitwise_and(im1, im2) # 二进制位运算:与
cv2.imshow('blue',res) # 弹出窗口
cv2.waitKey(0) # 0 无限等待;1000,1000毫秒之后,自动消失
cv2.destroyAllWindows() # 销毁内存
mask = cv2.inRange(im2, lower_blue, upper_blue)
res = cv2.bitwise_and(im1, im1, mask=mask) #二进制位运算:与
for i in range(res.shape[0]): # 高度
for j in range(res.shape[1]): # 宽度
if (res[i,j] == 0).all(): # 判断像素是黑色,都是0才是纯黑色
res[i,j] = 255 # 重新设置,变成255,纯白色