Python Opencv學習筆記1

2021-10-04 19:37:00 字數 2532 閱讀 1069

我選用的教材是opencv-python-torturial的翻譯版本,這裡給出基礎部分的學習**以及我的學習備註。

import numpy as np

import cv2

img = cv2.imread(

'untitled.png',0

)#這裡後面的引數是如何讀取這張,即以下三種情況

print

(cv2.imread_color,

'\n'

)#彩色影象,不包含透明度,值為1

print

(cv2.imread_grayscale,

'\n'

)#灰度影象,值為0

print

(cv2.imread_unchanged,

'\n'

)#彩色影象,包含alpha通道,值為-1

cv2.imshow(

'image'

,img)

#以預設方式展示一張

cv2.namedwindow(

'image2'

,cv2.window_normal)

#建立可以調節視窗大小的視窗

cv2.imshow(

'image2'

,img)

#在可調節視窗顯示

cv2.imwrite(

'gray.png'

,img)

#儲存灰度影象

cv2.namedwindow(

'example'

,cv2.window_normal)

img2=np.zeros(

(512

,512,3

), np.uint8)

#np.zeros是得到乙個用0填充的陣列(512,512)是陣列維度和每個元素的維度,即我們需要的全黑框的畫素,3應該和bgr顏色有關

cv2.line(img2,(0

,0),

(511

,511),

(255,0

,0),

5)#line(影象目標,起始座標,結束座標,線的顏色,線寬必須大於0(可以取到很大))

cv2.rectangle(img2,

(384,0

),(510

,128),

(0,255,0

),0)

#rectangle(影象目標,↖座標,↘座標,線的顏色,-1為填充(>=0為線寬,可以取到很大))

cv2.circle(img2,

(447,63

),63,

(0,0

,255),

-1)#circle(影象目標,圓心,半徑,線的顏色,-1為填充(>=0為線寬,可以取到很大))

cv2.ellipse(img2,

(256

,256),

(100,50

),0,

0,180,(0

,255

,255),

-1)#ellipse(影象目標,橢圓中心,橢圓長短軸長度(a,b),橢圓偏轉角度,圓弧起始角度,圓弧結束角度,顏色,線寬與是否填充,線的型別(此處未引用))

font=cv2.font_hershey_******x

cv2.puttext(img2,

'opencv',(

10,500)

, font,4,

(255

,255

,255),

2)#puttext(影象目標,顯示的字,字的位置,字型型別,字型大小,字型顏色,粗細)

cv2.imshow(

'example'

,img2)

cv2.namedwindow(

'example2'

,cv2.window_normal)

img3=np.zeros(

(512

,512,3

), np.uint8)

pts=np.array([[

10,5]

,[20,

30],[

70,20]

,[50,

10]], np.int32)

#建立陣列,資料型別為np.int32

pts=pts.reshape((-

1,1,

2))#重組陣列,-1是說根據後面兩個維度,計算這個維度的值

cv2.polylines(img3,

[pts]

,true,(

0,255,0)

,0)#畫多條線,注意pts必須加[pts],否則畫出來只是四個點

#polylines(影象目標,線的陣列,是否閉合(false的話就不閉合),線的顏色,線寬(必須》=0))

Python OpenCV學習(十二)Haar聯級

haar特徵 haar特徵是一種反映影象的灰度變化的,畫素分模組求差值的一種特徵。它分為三類 邊緣特徵 線性特徵 中心特徵和對角線特徵。用黑白兩種矩形框組合成特徵模板,在特徵模板內用 黑色矩形畫素和 減去 白色矩形畫素和來表示這個模版的特徵值。例如 臉部的一些特徵能由矩形模組差值特徵簡單的描述,如 ...

python opencv學習筆記(二)

影象與原始位元組之間的轉換 從概念上,乙個位元組能表示0到255的整數,通常乙個畫素每個通道由乙個位元組表示。乙個opencv影象是.array型別的二維或者三維陣列。8位的灰度影象是乙個含有位元組值得二維陣列。乙個24位的bgr影象是乙個三維陣列,也包含了位元組值,可以使用表示式訪問這些值,如im...

Python OpenCV學習(7) 模板匹配

利用python學習opencv,個人感覺比較方便。函式的形式與c 基本相同,所以切換過來還是比較好的,對於像我這種對python不太熟練的人,使用python的整合開發環境pycharm進行學習,可以設定斷點除錯,有助於我這類初學者理解掌握。下面是利用python語言結合opencv的模板匹配 6...