0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

OpenCV入門之OpenCV的基本操作1

jf_78858299 ? 來源:DL INtoOUT ? 作者: AN ? 2023-02-07 14:19 ? 次閱讀

OpenCV 簡介,環(huán)境安裝( python

簡介 :OpenCV是一個基于Apache2.0許可(開源)發(fā)行的跨平臺計算機(jī)視覺機(jī)器學(xué)習(xí)軟件庫,可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它輕量級而且高效——由一系列 C 函數(shù)和少量 C++ 類構(gòu)成,同時提供了Python、Ruby、MATLAB等語言的接口,實現(xiàn)了圖像處理和計算機(jī)視覺方面的很多通用算法

OpenCV用C++語言編寫,它具有C ++,Python,Java和MATLAB接口,并支持Windows,Linux,Android和Mac OS,OpenCV主要傾向于實時視覺應(yīng)用,并在可用時利用MMX和SSE指令,如今也提供對于C#、Ch、Ruby,GO的支持。

安裝( Python :在需要安裝的環(huán)境中直接輸入pip install opencv-python

目錄:

1 、讀取、顯示、保存圖像、讀取視頻

** 2 、繪制直線、矩形、圓、橢圓、多邊形、文本 **

3、圖像基本認(rèn)知:RGB、Gray、HSV等

4、通道分離與合并、色域轉(zhuǎn)換、像素運(yùn)算

5、案例總結(jié)(簡易調(diào)色板,簡易截圖工具,人臉檢測

OpenCV****基本操作

1 、讀取、顯示、保存圖像、讀取視頻

在cv2.imshow()之后要跟著cv2.waitkey(),waitkey()控制著imshow的持續(xù)時間,當(dāng)imshow之后不跟waitkey時,只有一個空窗口一閃而過,相當(dāng)于沒有給imshow提供時間展示圖像。destroyAllWindows()為銷毀窗口。

def ReadImg():
    # 創(chuàng)建窗口
    cv2.namedWindow('demo',cv2.WINDOW_NORMAL)
    # 調(diào)整窗口大小,(w,h)
    cv2.resizeWindow('demo',500,300)
    # 讀取圖像
    img = cv2.imread("./images/test.jpg")
    # 保存圖像
    cv2.imwrite('./images/rewrite.jpg',img)
    # 轉(zhuǎn)換灰度圖
    # black_white = cv2.imread("./images/test.jpg",cv2.IMREAD_GRAYSCALE)
    cv2.imshow("demo",img)
    cv2.waitKey(0)
    cv2.destroyAllWindows()


def ReadVideo():
    # capture = cv.VideoCapture(0)
    # 0是打開攝像頭,也可以是輸入視頻文件的路徑
    capture = cv2.VideoCapture(0, cv2.CAP_DSHOW)
    while True:
        ret, frame = capture.read()
        cv2.imshow("video", frame)
        c = cv2.waitKey(10)
        if c == 27:  # 表示鍵盤輸入的是ESC
            break
# video_demo()
img = cv2.imread("./images/test.jpg")
print(type(img))
print(img.shape)
# 
# (369, 720, 3)

讀取的圖像以numpy存儲,img.shape返回圖像的高、寬。

2 、繪制直線、矩形、圓、橢圓、多邊形、文本

def DrawGraph():
    # 創(chuàng)建一個純黑的背景
    bg = np.zeros([500,500,3],np.uint8)
    # 畫矩形,cv2.rectangle(img,左上角點,右下角點,顏色,線條寬度)
    cv2.rectangle(bg,(0,0),(100,100),[0,255,0],2)
    cv2.rectangle(bg,(100,100),(200,300),[0,0,255],2)
    # 畫圓, cv2.circle(img,圓心,半徑,顏色,線條寬度)
    cv2.circle(bg,(200,300),100,(255,0,0),2)
    # 畫橢圓,cv2.ellipse(img,中心點,長軸短軸,傾斜角度,開始角度,結(jié)束角度,color,thickness)
    cv2.ellipse(bg,(200,100),(100,50),90,0,360,color=(255,255,0),thickness=2)
    cv2.ellipse(bg,(200,100),(50,100),0,90,180,color=(255,0,255),thickness=2)
    # 寫文字,cv2.putText(img,"OpenCV",位置,字體,大小,顏色,寬度)
    cv2.putText(bg,"OpenCV",(100,350),cv2.FONT_HERSHEY_SIMPLEX,2,(0,255,255),2)
    # 繪制多邊形
    pts = np.array([(300, 100), (260, 200), (390, 200)], np.int32)
    cv2.polylines(bg,[pts],True,(0,255,0),2)
    cv2.fillPoly(bg,[pts],(105,10,90))
    # 展示
    cv2.imshow("demo", bg)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

示例

圖片

注:坐標(biāo)原點在圖像左上角

行數(shù),rows其實對應(yīng)于坐標(biāo)軸上的y,即表示的是圖像的高度,豎直方向;

列數(shù),cols對應(yīng)于坐標(biāo)軸上的x,即表示的是圖像的寬度,水平方向;

橢圓中旋轉(zhuǎn)為順時針旋轉(zhuǎn)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • matlab
    +關(guān)注

    關(guān)注

    182

    文章

    2960

    瀏覽量

    230045
  • 開源
    +關(guān)注

    關(guān)注

    3

    文章

    3229

    瀏覽量

    42343
  • C++
    C++
    +關(guān)注

    關(guān)注

    21

    文章

    2102

    瀏覽量

    73457
  • OpenCV
    +關(guān)注

    關(guān)注

    29

    文章

    625

    瀏覽量

    41218
  • ruby
    +關(guān)注

    關(guān)注

    0

    文章

    44

    瀏覽量

    3442
收藏 人收藏

    評論

    相關(guān)推薦

    OpenCV_編程簡介(入門必讀)

    opencv編程簡介,入門必讀,適合新手簡單了解opencv的相關(guān)知識。
    發(fā)表于 03-21 13:49 ?11次下載

    基本閾值操作_《OpenCV3編程入門》書本配套源代碼

    OpenCV3編程入門》書本配套源代碼:基本閾值操作
    發(fā)表于 06-06 15:39 ?8次下載

    基本鼠標(biāo)操作_《OpenCV3編程入門》書本配套源代碼

    OpenCV3編程入門》書本配套源代碼:基本鼠標(biāo)操作
    發(fā)表于 06-06 15:39 ?5次下載

    OpenCV進(jìn)行基本繪圖_《OpenCV3編程入門》書本配套源

    OpenCV3編程入門》書本配套源代碼:用OpenCV進(jìn)行基本繪圖
    發(fā)表于 05-11 16:46 ?36次下載

    支持向量機(jī)SVM引導(dǎo)_《OpenCV3編程入門》書本配套源代碼

    OpenCV3編程入門》書本配套源代碼:支持向量機(jī)SVM引導(dǎo)
    發(fā)表于 06-06 15:52 ?2次下載

    OpenCV3編程入門-源碼例程全集-OpenCV開發(fā)環(huán)境的配置

    OpenCV3編程入門-源碼例程全集-OpenCV開發(fā)環(huán)境的配置,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 09-18 16:27 ?20次下載

    OpenCV3編程入門-源碼例程全集-基本閾值操作

    OpenCV3編程入門-源碼例程全集-基本閾值操作,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 09-18 16:55 ?0次下載

    OpenCV3編程入門-源碼例程全集-基本鼠標(biāo)操作

    OpenCV3編程入門-源碼例程全集-基本鼠標(biāo)操作,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 09-18 16:55 ?0次下載

    支持向量機(jī)SVM引導(dǎo)_OpenCV3編程入門-源碼例程

    OpenCV3編程入門-源碼例程全集-支持向量機(jī)SVM引導(dǎo),感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 09-18 17:02 ?1次下載

    OpenCV進(jìn)行基本繪圖_OpenCV3編程入門-源碼例程

    OpenCV3編程入門-源碼例程全集-用OpenCV進(jìn)行基本繪圖,感興趣的小伙伴們可以瞧一瞧。
    發(fā)表于 09-18 17:02 ?3次下載

    OpenCV入門OpenCV的基本操作2

    OpenCV是一個基于Apache2.0許可(開源)發(fā)行的跨平臺計算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它輕量級而且高效——由一系列
    的頭像 發(fā)表于 02-07 14:19 ?796次閱讀
    <b class='flag-5'>OpenCV</b><b class='flag-5'>入門</b><b class='flag-5'>之</b><b class='flag-5'>OpenCV</b>的基本<b class='flag-5'>操作</b>2

    OpenCV入門OpenCV的基本操作實戰(zhàn)代碼

    OpenCV是一個基于Apache2.0許可(開源)發(fā)行的跨平臺計算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它輕量級而且高效——由一系列
    的頭像 發(fā)表于 02-07 14:24 ?745次閱讀

    OpenCV入門OpenCV的基本操作3

    OpenCV是一個基于Apache2.0許可(開源)發(fā)行的跨平臺計算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它輕量級而且高效——由一系列
    的頭像 發(fā)表于 02-07 14:33 ?577次閱讀
    <b class='flag-5'>OpenCV</b><b class='flag-5'>入門</b><b class='flag-5'>之</b><b class='flag-5'>OpenCV</b>的基本<b class='flag-5'>操作</b>3

    OpenCV入門OpenCV的基本操作4

    OpenCV是一個基于Apache2.0許可(開源)發(fā)行的跨平臺計算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它輕量級而且高效——由一系列
    的頭像 發(fā)表于 02-07 14:34 ?572次閱讀
    <b class='flag-5'>OpenCV</b><b class='flag-5'>入門</b><b class='flag-5'>之</b><b class='flag-5'>OpenCV</b>的基本<b class='flag-5'>操作</b>4

    OpenCV入門OpenCV的基本操作5

    OpenCV是一個基于Apache2.0許可(開源)發(fā)行的跨平臺計算機(jī)視覺和機(jī)器學(xué)習(xí)軟件庫,可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。它輕量級而且高效——由一系列
    的頭像 發(fā)表于 02-07 14:35 ?526次閱讀