1. 图片加载与显示
import cv2
import numpy as npif __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,纯白色