Python实战HSV颜色模型——提取像素点并判断像素点颜色
生活随笔
收集整理的這篇文章主要介紹了
Python实战HSV颜色模型——提取像素点并判断像素点颜色
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
首先參考以下博文將圖片讀取為RGB矩陣
https://blog.csdn.net/u012421101/article/details/116798509
之后將RGB轉為HSV
def rgb2hsv(r, g, b):r, g, b = r/255.0, g/255.0, b/255.0mx = max(r, g, b)mn = min(r, g, b)m = mx-mnif mx == mn:h = 0elif mx == r:if g >= b:h = ((g-b)/m)*60else:h = ((g-b)/m)*60 + 360elif mx == g:h = ((b-r)/m)*60 + 120elif mx == b:h = ((r-g)/m)*60 + 240if mx == 0:s = 0else:s = m/mxv = mxH = h / 2S = s * 255.0V = v * 255.0return H, S, V查看判斷表格
設定顏色判斷公式(此處僅判斷黃色和綠色)
def yellow(H, S, V):if(H>=26 and H<=34 and S>=43 and S<=255 and V>=46 and V<=255):return Truedef green(H, S, V):if(H>=35 and H<=77 and S>=43 and S<=255 and V>=46 and V<=255):return True判斷實例
提取像素點代碼
from typing import Sized from PIL import Image import numpy as np import matplotlib.pyplot as plt import math import random import timeplt.rcParams['font.sans-serif']=['SimHei'] #顯示中文標簽 plt.rcParams['axes.unicode_minus']=False #這兩行需要手動設置'''首先讀取圖片的RGB特征值,讀取結果為三維矩陣形式 ''' L_path='train/B/Rock/4-2.jpg' L_image=Image.open(L_path) out = L_image.convert("RGB") dataset=np.array(out)'''繪制原始圖片 ''' fig = plt.figure() ax = fig.add_subplot(1,2,1) plt.imshow(dataset) ax.set_title("原始圖")size = dataset.shape print(size) count = 0'''黃色與綠色熒光點將會設置為黑色其它顏色設置白色 ''' for i in range(size[0]):for j in range(size[1]):temp0,temp1,temp2 = rgb2hsv(dataset[i,j,0],dataset[i,j,1],dataset[i,j,2])#顏色轉化if(green(temp0,temp1,temp2)):#設置為黑色count = count + 1 dataset[i,j,0] = 0dataset[i,j,1] = 0dataset[i,j,2] = 0elif (yellow(temp0,temp1,temp2)):#判定為黃色count = count + 1 dataset[i,j,0] = 0dataset[i,j,1] = 0dataset[i,j,2] = 0else:dataset[i,j,0] = 255dataset[i,j,1] = 255dataset[i,j,2] = 255print(count)'''繪制提取圖 ''' ax = fig.add_subplot(1,2,2) plt.imshow(dataset) string = str(count/(size[0]*size[1])) ax.set_title("熒光點提取圖\n"+string) plt.show()結果下如圖:
總結
以上是生活随笔為你收集整理的Python实战HSV颜色模型——提取像素点并判断像素点颜色的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 鱼眼摄像头的畸变矫正方法-python+
- 下一篇: 用Python来爬一下网易云歌词,简单操