日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python实战HSV颜色模型——提取像素点并判断像素点颜色

發(fā)布時間:2023/12/29 python 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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颜色模型——提取像素点并判断像素点颜色的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。