導航:首頁 > 編程語言 > python三維hsv模型

python三維hsv模型

發布時間:2023-01-30 04:41:23

『壹』 提取顏色特徵並計算熵,使用python實現


正好學到這,練下手。比較晚了,所以寫的比較簡單,不明白了明天再說

『貳』 python實現grb和hsv轉換

這個輸出整數還是小數,估計輸出整數就可以,如果希望輸出浮點數,可以將round去掉。


importmath
defhsv2rgb(h,s,v):
h=float(h)
s=float(s)
v=float(v)
h60=h/60.0
h60f=math.floor(h60)
hi=int(h60f)%6
f=h60-h60f
p=v*(1-s)
q=v*(1-f*s)
t=v*(1-(1-f)*s)
r,g,b=0,0,0
ifhi==0:r,g,b=v,t,p
elifhi==1:r,g,b=q,v,p
elifhi==2:r,g,b=p,v,t
elifhi==3:r,g,b=p,q,v
elifhi==4:r,g,b=t,p,v
elifhi==5:r,g,b=v,p,q
r,g,b=int(r*255),int(g*255),int(b*255)
returnr,g,b
defrgb2hsv(r,g,b):
r,g,b=r/255.0,g/255.0,b/255.0
mx=max(r,g,b)
mn=min(r,g,b)
df=mx-mn
ifmx==mn:
h=0
elifmx==r:
h=(60*((g-b)/df)+360)%360
elifmx==g:
h=(60*((b-r)/df)+120)%360
elifmx==b:
h=(60*((r-g)/df)+240)%360
ifmx==0:
s=0
else:
s=df/mx
v=mx
returnh,s,v


if__name__=="__main__":
fp=open("1.txt","w")
forlineinopen("rgb2hsv.txt",'r'):
r,g,b=map(int,line.split(','))
h,s,v=rgb2hsv(r,g,b)
fp.write("%d,%d,%d "%(round(h),round(s),round(v)))

fp.close()

『叄』 python-opencv怎樣找到要跟蹤對象的HSV

其實這真的很簡單,函數 cv2.cvtColor() 也可以用到這里。但是現在你要傳入的參數是(你想要
的)BGR 值而不是一副圖。例如,我們要找到綠色的 HSV 值,我們只需在終端輸入以下命令:
**import cv2
import numpy as np
green=np.uint8([0,255,0])
hsv_green=cv2.cvtColor(green,cv2.COLOR_BGR2HSV)
error: /builddir/build/BUILD/opencv-2.4.6.1/
moles/imgproc/src/color.cpp:3541:
error: (-215) (scn == 3 || scn == 4) && (depth == CV_8U || depth == CV_32F)
in function cvtColor
#scn (the number of channels of the source),
#i.e. self.img.channels(), is neither 3 nor 4.
#
#depth (of the source),
#i.e. self.img.depth(), is neither CV_8U nor CV_32F.
# 所以不能用 [0,255,0] ,而要用 [[[0,255,0]]]
# 這里的三層括弧應該分別對應於 cvArray , cvMat , IplImage
green=np.uint8([[[0,255,0]]])
hsv_green=cv2.cvtColor(green,cv2.COLOR_BGR2HSV)
print hsv_green
[[[60 255 255]]]**
**擴展縮放只是改變圖像的尺寸大小。OpenCV 提供的函數 cv2.resize()
可以實現這個功能。圖像的尺寸可以自己手動設置,你也可以指定縮放因子。我
們可以選擇使用不同的插值方法。在縮放時我們推薦使用 cv2.INTER_AREA,
在擴展時我們推薦使用 v2.INTER_CUBIC(慢) 和 v2.INTER_LINEAR。
默認情況下所有改變圖像尺寸大小的操作使用的插值方法都是 cv2.INTER_LINEAR。
你可以使用下面任意一種方法改變圖像的尺寸:**
12345671234567
**# -*- coding: utf-8 -*-
"""
@author: Andrew
"""
import cv2
import numpy as np

img=cv2.imread('tu.jpg')
res=cv2.resize(img,None,fx=2,fy=2,interpolation=cv2.INTER_CUBIC)

height,width=img.shape[:2]
res=cv2.resize(img,(2*width,2*height),interpolation=cv2.INTER_CUBIC)

while(1):
cv2.imshow('res',res)
cv2.imshow('img',img)

if cv2.waitKey(1)&0xFF==27:

break
cv2.destroyAllWindows()**


0

『肆』 提取HSV顏色特徵,並計算維數的熵,最後保存特徵和熵,形式:圖像名、特徵和熵,用python實現,怎麼實現

可以使用Python版的opencv 來實現。

現讀取圖片:

importcv2
importnumpyasnp

image=cv2.imread('./src/q5.png')
HSV=cv2.cvtColor(image,cv2.COLOR_BGR2HSV)

計算熵

img=np.array(HSV)
foriinrange(len(img)):
forjinrange(len(img[i])):
val=img[i][j]
tmp[val]=float(tmp[val]+1)
k=float(k+1)
foriinrange(len(tmp)):
tmp[i]=float(tmp[i]/k)
foriinrange(len(tmp)):
if(tmp[i]==0):
res=res
else:
res=float(res-tmp[i]*(math.log(tmp[i])/math.log(2.0)))

保存:
HSV圖形可以直接存儲,特徵可以存xml中~

cv2.imwrite("具體路徑",HSV)

『伍』 灰度圖圖像替換hsv中的v的Python實現,不要調用庫函數

也可以轉換為灰度圖像。 函數原型:void cvCvtColor( const CvArr* src, CvArr* dst, int code ); 參數: src 輸入的 8-bit,16-bit或 32-bit單倍精度

『陸』 python畫曲線圖背景為白色

這是一種可能的方法。如果轉換為HSV色彩空間,藍色陰影將顯示比黑色和白色更高的飽和度,所以......

轉換為HSV

找到每行的平均飽和度,並選擇平均飽和度超過閾值的行
灰度化那些行,反轉並閾值它們
如果反向(突出)背景是除黑色或白色之外的任何顏色,則此方法應該有效。它假設您根據示例將圖像偏斜為真正的垂直/水平。

『柒』 python如何繪制預測模型校準圖

python繪制預測模型校準圖可以使用校準曲線,因為預測一個模型校準的最簡單的方法是通過一個稱為「校準曲線」的圖(也稱為「可靠性圖」,reliability diagram)。

這個方法主要是將觀察到的結果通過概率劃分為幾類(bin)。因此,屬於同一類的觀測值具有相近的概率。

對於每個類,校準曲線將預測這個類的平均值,然後將預測概率的平均值與理論平均值(即觀察到的目標變數的平均值)進行比較。

你只需要確定類的數量和以下兩者之間的分類策略即可:

1、「uniform」,一個0-1的間隔被分為n_bins個類,它們都具有相同的寬度。

2、「quantile」,類的邊緣被定義,從而使得每個類都具有相同數量的觀測值。

假設你的模型具有良好的精度,則校準曲線將單調增加。但這並不意味著模型已被正確校準。實際上,只有在校準曲線非常接近等分線時(即下圖中的灰色虛線),您的模型才能得到很好的校準,因為這將意味著預測概率基本上接近理論概率。

python繪制預測模型中如何解決校準錯誤:

假設你已經訓練了一個分類器,該分類器會產生准確但未經校準的概率。概率校準的思想是建立第二個模型(稱為校準器),校準器模型能夠將你訓練的分類器「校準」為實際概率。

因此,校準包括了將一個一維矢量(未校準概率)轉換為另一個一維矢量(已校準概率)的功能。

兩種常被用作校準器的方法:

1、保序回歸:一種非參數演算法,這種非參數演算法將非遞減的自由格式行擬合到數據中。行不會減少這一事實是很重要的,因為它遵從原始排序。

2、邏輯回歸:現在有三種選擇來預測概率:普通隨機森林、隨機森林 + 保序回歸、隨機森林 + 邏輯回歸。

『捌』 什麼是精細三維全過程Python建模

建模的精細度精細三維全過程Python建模
初期建模的時候按照物體的細節在電腦中建模生成,並賦予恰當的貼圖
建模,就是建立模型,就是為了理解事物而對事物做出的一種抽象,是對事物的一種無歧義的書面描述。建立系統模型的過程,又稱模型化。建模是研究系統的重要手段和前提。凡是用模型描述系統的因果關系或相互關系的過程都屬於建模。
因描述的關系各異,所以實現這一過程的手段和方法也是多種多樣的。可以通過對系統本身運動規律的分析,根據事物的機理來建模;也可以通過對系統的實驗或統計數據的處理,並根據關於系統的已有的知識和經驗來建模。還可以同時使用幾種方法。

閱讀全文

與python三維hsv模型相關的資料

熱點內容
有伺服器地址怎麼安裝軟體 瀏覽:657
安卓如何完全清除數據 瀏覽:690
安卓安卓證書怎麼信任 瀏覽:53
伺服器被攻擊如何解決 瀏覽:221
學霸變成程序員 瀏覽:881
c語言編譯錯誤fatalerror 瀏覽:441
ipv4內部伺服器地址怎麼分配 瀏覽:463
java線程安全的方法 瀏覽:950
重復命令畫梯形 瀏覽:164
在疫情就是命令 瀏覽:328
自己搭建一個什麼伺服器好玩 瀏覽:253
java基礎馬士兵 瀏覽:823
完美世界手游如何查看伺服器 瀏覽:859
光遇安卓與ios什麼時候互通 瀏覽:598
js如何運行時編譯 瀏覽:916
引力app在哪裡下載 瀏覽:609
編寫app如何得到錢 瀏覽:800
吉利汽車軟體放哪個文件夾安裝 瀏覽:223
多文件編譯c 瀏覽:542
頭頂加密後為什麼反而更稀疏 瀏覽:794