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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

opencv基础

發布時間:2025/1/21 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 opencv基础 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、基礎介紹

  • 圖像坐標
    圖像的原點是左上角的點,終點在右下角。

  • opencv讀取的顏色是BGR的。

    img = cv2.imread(image)
    cv2.cvtColor(img,cv2.COLOR_BGR2RGB)#顏色轉換 BGR ——> RGB

  • 二、基本操作

  • 繪制直線、矩形及圓
    新建一個全黑的圖,作為底圖.
  • blank = np.zeros((300,300,3),dtype = np.uint8)

    畫直線

    color = (0,0,255) img_line = cv2.line(blank,(0,0),(100,100),color = color,thickness=10)#原圖blank也變了 show(img_line)


    畫矩形

    color = (0,255,255) img_rectangle = cv2.rectangle(blank,(100,100),(200,200),color = color,thickness=10) show(img_rectangle)


    畫圓

    color = (255,0,255) img_circle = cv2.circle(blank,(200,200),50,color = color,thickness=10) show(img_circle)


    當thickness為負數時,填充效果。

  • 圖像翻轉
    cv2.flip()有返回值,不會改變原始圖像
    1 水平翻轉
  • img1 = cv2.flip(img,1) show(img) show(img1)

    注意看,是真的水平翻轉了

    垂直翻轉

    img0 = cv2.flip(img,0) show(img) show(img0)


    3. 圖像加、減法操作
    uint8表示的數值范圍:0~255.
    加法
    圖像加法操作:當累加和超過255,用255代替。一般加法:當累加和超過255,和為累加和-255.
    圖像加法讓圖像變亮


    減法
    圖像減法操作:當差值小于0,用0代替。一般加法:當差值小于0,結果為256+差值。
    圖像減法讓圖像變暗


    4. 按位操作
    按位與:bitwise_and #遇黑變黑,用來屏蔽
    按位或:bitwise_or # #遇白變白,用來屏蔽
    按位疑惑:bitwise_xor
    按位非:bitwise_not

    按位與

    img = cv2.bitwise_and(img_circle,img_rectangle) fig = plt.figure() fig.add_subplot(1,3,1) show(img_rectangle) fig.add_subplot(1,3,2) show(img_circle) fig.add_subplot(1,3,3) show(img) plt.show()





    異或



    5. 遮擋
    通過按位操作中 按位與:bitwise_and #遇黑變黑,用來屏蔽按位或:bitwise_or # 遇白變白,用來屏蔽,可將指定區域變白或變黑,達到屏蔽效果。

    fig = plt.figure(figsize=(15,50)) img = read_image('face.png') fig.add_subplot(1,3,1) show(img) blank = np.zeros(img.shape,dtype=np.uint8) fig.add_subplot(1,3,2) show(blank) white = (255,255,255) img_rectangle = cv2.rectangle(blank,(15,15), (img.shape[1]-10,img.shape[0]-10),color = white,thickness = 10) fig.add_subplot(1,3,3) show(cv2.bitwise_or(img,img_rectangle))

    按位或的遮擋, 有相框的效果


    6. 切分通道及合并通道

    (R, G, B) = cv2.split(image)#切分通道 merged = cv2.merge([R,G,B])#合并通道

    總結

    以上是生活随笔為你收集整理的opencv基础的全部內容,希望文章能夠幫你解決所遇到的問題。

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