好湿?好紧?好多水好爽自慰,久久久噜久噜久久综合,成人做爰A片免费看黄冈,机机对机机30分钟无遮挡

主頁 > 知識庫 > python OpenCV學習筆記

python OpenCV學習筆記

熱門標簽:西藏智能外呼系統五星服務 江蘇客服外呼系統廠家 400電話申請服務商選什么 在哪里辦理400電話號碼 原裝電話機器人 千陽自動外呼系統 平頂山外呼系統免費 工廠智能電話機器人 清遠360地圖標注方法

圖像翻轉

使用Python的一個包,imutils。使用下面的指令可以安裝。

pip install imutils

imutils包的Github地址:https://github.com/jrosebr1/imutils

CSDN鏡像:https://codechina.csdn.net/mirrors/jrosebr1/imutils

可以在上面這個地址里面學習更多的使用方式。

import cv2
import imutils

'''
imutils.rotate
第一個參數是翻轉的圖像,第二個參數的翻轉角度
函數還提供翻轉中心的設置,但默認就是中心翻轉。
'''
vc = cv2.VideoCapture(0)

if vc.isOpened():
  flag, frame = vc.read()
  img = imutils.rotate(frame, 180)  # 圖像翻轉 
  cv2.imshow("frame", img)
else:
  flag = False

while flag:
  flag, frame = vc.read()
  if frame is None:
    break
  if flag is True:
    img = imutils.rotate(frame, 180)  # 圖像翻轉
    cv2.imshow("frame", img)
    if cv2.waitKey(10) == 27:
      break
vc.release()
cv2.destroyAllWindows()

這樣寫的話,最后的輸出圖像就是翻轉180度的。

imutils包里還有其他好用的函數,resizing、4-point Perspective Transform、Sorting Contours等等。

圖像輪廓排序

這個效果同樣也是依靠imutils包完成。

from imutils import contours
import cv2
'''
contours.sort_contours
可選排序方式:"left-to-right", "right-to-left", "top-to-bottom", "bottom-to-top"
返回值為輪廓和外接矩形

contours.label_contour
contours包內自帶的畫輪廓的函數,可以直接用,然后可以在圖片上標出輪廓序號
也可以直接使用cv2.drawContours直接畫輪廓
'''
img = cv2.imread(r"D:\opencv-workspace\Opencv\test17--VScode\shapes.png")
draw_img = img.copy()
img_rect = img.copy()
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img = cv2.Canny(gray, 10, 20)  # Canny邊緣檢測
cnts, hierarchy = cv2.findContours(img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)  # 獲得輪廓
(cnts, boundingBoxes) = contours.sort_contours(cnts, "top-to-bottom")  # 對輪廓進行排序處理
for (i, c) in enumerate(cnts):
  sortedImage = contours.label_contour(draw_img, c, i, color=(240, 0, 159))
# img_out = cv2.drawContours(draw_img, cnts, -1, (240, 0, 159), 2)
# 根據boundingBoxes畫外接矩形
for (x, y, w, h) in boundingBoxes:
  img_rect = cv2.rectangle(img_rect, (x, y), (x+w, y+h), (240, 0, 159), 2)
cv2.imshow("top-to-bottom", sortedImage)
cv2.imshow("rect", img_rect)
cv2.waitKey(0)
cv2.destroyAllWindows()

這樣寫的話,最后的輸出圖像就是翻轉180度的。

imutils包里還有其他好用的函數,resizing、4-point Perspective Transform、Sorting Contours等等。

圖像輪廓排序

這個效果同樣也是依靠imutils包完成。

from imutils import contours
import cv2
'''
contours.sort_contours
可選排序方式:"left-to-right", "right-to-left", "top-to-bottom", "bottom-to-top"
返回值為輪廓和外接矩形

contours.label_contour
contours包內自帶的畫輪廓的函數,可以直接用,然后可以在圖片上標出輪廓序號
也可以直接使用cv2.drawContours直接畫輪廓
'''
img = cv2.imread(r"D:\opencv-workspace\Opencv\test17--VScode\shapes.png")
draw_img = img.copy()
img_rect = img.copy()
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
img = cv2.Canny(gray, 10, 20)  # Canny邊緣檢測
cnts, hierarchy = cv2.findContours(img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)  # 獲得輪廓
(cnts, boundingBoxes) = contours.sort_contours(cnts, "top-to-bottom")  # 對輪廓進行排序處理
for (i, c) in enumerate(cnts):
  sortedImage = contours.label_contour(draw_img, c, i, color=(240, 0, 159))
# img_out = cv2.drawContours(draw_img, cnts, -1, (240, 0, 159), 2)
# 根據boundingBoxes畫外接矩形
for (x, y, w, h) in boundingBoxes:
  img_rect = cv2.rectangle(img_rect, (x, y), (x+w, y+h), (240, 0, 159), 2)
cv2.imshow("top-to-bottom", sortedImage)
cv2.imshow("rect", img_rect)
cv2.waitKey(0)
cv2.destroyAllWindows()

顏色識別

基礎顏色識別

顏色識別是在HSV空間內進行的,因此在使用之前先進行顏色空間的轉換。

'''使用下面這個函數進行轉換,第一個參數填寫要轉換的圖片,第二個參數填寫cv2.COLOR_BGR2HSV'''
cv2.cvtColor
import cv2
import numpy as np
'''
cv2.inRange
函數很簡單,參數有三個
第一個參數:hsv指的是原圖
第二個參數:lower_red指的是圖像中低于這個lower_red的值,圖像值變為0
第三個參數:upper_red指的是圖像中高于這個upper_red的值,圖像值變為0
而在lower_red~upper_red之間的值變成255
'''
# 閾值
lower_green = np.array([50, 255, 255])
upper_green = np.array([70, 255, 255])
img = cv2.imread(r"D:\opencv-workspace\Opencv\test16--VScode\photo.jpg")
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
mask_green = cv2.inRange(img_hsv, lower_green, upper_green)
cv2.imshow("img_or", mask_green)
# 使用下面這個函數能顯示原來的顏色。
res_green = cv2.bitwise_and(img, img, mask=mask_green)
cv2.imshow("img", res_green)
cv2.waitKey(0)
cv2.destroyAllWindows()

在進行顏色識別時,難免會出現“漏顏色”的現象,也就是會出現沒識別全的現象。這個時候可以再對圖像進行處理,比如說進行形態學處理,讓圖像更加飽滿之類的。

根據BGR獲取HSV

import cv2

color = np.uint8([[[193, 189, 147]]])  # 參數填寫BGR的值
hsv = cv2.cvtColor(color, cv2.COLOR_BGR2HSV)
print(hsv)  # 打印出來的數值就是對應的HSV值

程序運行的結果是

[[[ 93 61 193]]]

這個就是對應的HSV的值。

根據之前寫的顏色識別,就需要把對應的閾值寫出。具體寫法就是保持S和V不變,H加減10。這樣的話就可以寫出高低閾值然后應用到顏色識別里面就可以了。

閾值編輯器

import cv2
import numpy as np


def function(x):
  lowH = cv2.getTrackbarPos("lowH", "img_666")
  lowS = cv2.getTrackbarPos("lowS", "img_666")
  lowV = cv2.getTrackbarPos("lowV", "img_666")
  HighH = cv2.getTrackbarPos("HighH", "img_666")
  HighS = cv2.getTrackbarPos("HighS", "img_666")
  HighV = cv2.getTrackbarPos("HighV", "img_666")
  # print(lowH, lowS, lowV, HighH, HighS, HighV)
  lower = np.uint8([lowH, lowS, lowV])
  upper = np.uint8([HighH, HighS, HighV])
  mask = cv2.inRange(img_hsv, lower, upper)
  res = cv2.bitwise_and(img, img, mask=mask)
  cv2.imshow("img", res)


img = cv2.imread(r"D:\opencv-workspace\Opencv\test16--VScode\test.jpg")
img_hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)
cv2.namedWindow("img_666")
cv2.createTrackbar("lowH", "img_666", 0, 179, function)
cv2.createTrackbar("lowS", "img_666", 0, 255, function)
cv2.createTrackbar("lowV", "img_666", 0, 255, function)
cv2.createTrackbar("HighH", "img_666", 0, 179, function)
cv2.createTrackbar("HighS", "img_666", 0, 255, function)
cv2.createTrackbar("HighV", "img_666", 0, 255, function)
cv2.imshow("img", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

寫了一個比較垃圾的閾值編輯器。。。就不多解釋了。。

以上就是python OpenCV學習筆記的詳細內容,更多關于python OpenCV的資料請關注腳本之家其它相關文章!

您可能感興趣的文章:
  • 使用python和opencv的mask實現摳圖疊加
  • Python opencv缺陷檢測的實現及問題解決
  • Python OpenCV快速入門教程
  • python讀取并顯示圖片的三種方法(opencv、matplotlib、PIL庫)
  • python opencv常用圖形繪制方法(線段、矩形、圓形、橢圓、文本)
  • python基于OpenCV模板匹配識別圖片中的數字
  • python-opencv中的cv2.inRange函數用法說明

標簽:西安 白城 天水 日照 隨州 安慶 錦州 股票

巨人網絡通訊聲明:本文標題《python OpenCV學習筆記》,本文關鍵詞  python,OpenCV,學習,筆記,python,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《python OpenCV學習筆記》相關的同類信息!
  • 本頁收集關于python OpenCV學習筆記的相關信息資訊供網民參考!
  • 推薦文章
    主站蜘蛛池模板: 91天天干| 日本一级av无码毛片铃木凉| 国产cosplay精品视频| 学校短裙白丝系列短篇小h| 欧美同性videos免费可播放| 欧美AV无码精品多人运动| 国产v片免费播放| 夜生活女王之霞姐传奇| 善良的小峓子HD中字3D漫画| 国产愉拍91九色国产愉拍| 韩国理伦三级无删减版播放| condom色疯狂做受xxxx| 日系全身tk一视频丨vk| 女人c交zzzooo在线观看| 久久久久久久久久久久精品无码| 我和亲妹妹乱的视频网站 | 鞠婧祎下面好深好多水| 国产一级特黄aa大片免费视频| 国产伦精品一区二区三区免费观| 免费观看视频的app| 青青青久久久| 性生生活18分钟| 亚洲 成人 小说 校园 激情| 6080新觉伦影视手机版| 双性舔| 性tube老少配job| 日韩一级不卡| 亚洲精品8848四虎成人| 国产h肉在线视频免费观看| 欧美成人视| 国产精品99| Chinese Gay Fuck XXX HD| 午夜看片在线观看| 国产年成美女网站视频免费看| 又爽又黄又免费的视频| gogo全球专业高清摄影| 再深点灬舒服灬太大了添小书| 自拍偷自拍亚洲精品熟妇人 | 精品亚洲男同GAYVideo网站| 欧美xxxxx九色视频免费观看| 黑人猛挺进小莹的体内|