校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

主頁 > 知識庫 > python OpenCV學(xué)習(xí)筆記

python OpenCV學(xué)習(xí)筆記

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

圖像翻轉(zhuǎn)

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

pip install imutils

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

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

可以在上面這個地址里面學(xué)習(xí)更多的使用方式。

import cv2
import imutils

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

if vc.isOpened():
  flag, frame = vc.read()
  img = imutils.rotate(frame, 180)  # 圖像翻轉(zhuǎn) 
  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)  # 圖像翻轉(zhuǎn)
    cv2.imshow("frame", img)
    if cv2.waitKey(10) == 27:
      break
vc.release()
cv2.destroyAllWindows()

這樣寫的話,最后的輸出圖像就是翻轉(zhuǎn)180度的。

imutils包里還有其他好用的函數(shù),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包內(nèi)自帶的畫輪廓的函數(shù),可以直接用,然后可以在圖片上標(biāo)出輪廓序號
也可以直接使用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")  # 對輪廓進(jìn)行排序處理
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)
# 根據(jù)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()

這樣寫的話,最后的輸出圖像就是翻轉(zhuǎn)180度的。

imutils包里還有其他好用的函數(shù),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包內(nèi)自帶的畫輪廓的函數(shù),可以直接用,然后可以在圖片上標(biāo)出輪廓序號
也可以直接使用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")  # 對輪廓進(jìn)行排序處理
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)
# 根據(jù)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()

顏色識別

基礎(chǔ)顏色識別

顏色識別是在HSV空間內(nèi)進(jìn)行的,因此在使用之前先進(jìn)行顏色空間的轉(zhuǎn)換。

'''使用下面這個函數(shù)進(jìn)行轉(zhuǎn)換,第一個參數(shù)填寫要轉(zhuǎn)換的圖片,第二個參數(shù)填寫cv2.COLOR_BGR2HSV'''
cv2.cvtColor
import cv2
import numpy as np
'''
cv2.inRange
函數(shù)很簡單,參數(shù)有三個
第一個參數(shù):hsv指的是原圖
第二個參數(shù):lower_red指的是圖像中低于這個lower_red的值,圖像值變?yōu)?
第三個參數(shù):upper_red指的是圖像中高于這個upper_red的值,圖像值變?yōu)?
而在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)
# 使用下面這個函數(shù)能顯示原來的顏色。
res_green = cv2.bitwise_and(img, img, mask=mask_green)
cv2.imshow("img", res_green)
cv2.waitKey(0)
cv2.destroyAllWindows()

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

根據(jù)BGR獲取HSV

import cv2

color = np.uint8([[[193, 189, 147]]])  # 參數(shù)填寫B(tài)GR的值
hsv = cv2.cvtColor(color, cv2.COLOR_BGR2HSV)
print(hsv)  # 打印出來的數(shù)值就是對應(yīng)的HSV值

程序運行的結(jié)果是

[[[ 93 61 193]]]

這個就是對應(yīng)的HSV的值。

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

閾值編輯器

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學(xué)習(xí)筆記的詳細(xì)內(nèi)容,更多關(guān)于python OpenCV的資料請關(guān)注腳本之家其它相關(guān)文章!

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

標(biāo)簽:西安 白城 天水 日照 隨州 安慶 錦州 股票

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python OpenCV學(xué)習(xí)筆記》,本文關(guān)鍵詞  python,OpenCV,學(xué)習(xí),筆記,python,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python OpenCV學(xué)習(xí)筆記》相關(guān)的同類信息!
  • 本頁收集關(guān)于python OpenCV學(xué)習(xí)筆記的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    成人做爰69片免费看网站| 麻豆精品蜜桃视频网站| 日韩伦理av电影| 亚洲va中文字幕| www.亚洲色图.com| 精品电影一区二区| 亚洲国产综合色| 不卡高清视频专区| 欧美电影免费观看高清完整版在 | 成人免费不卡视频| 日韩一区二区精品在线观看| 亚洲男人的天堂在线aⅴ视频| 狠狠狠色丁香婷婷综合激情| 欧美日韩在线三级| 亚洲精品成人天堂一二三| 国产成人av在线影院| 欧美一级欧美一级在线播放| 亚洲影院免费观看| 91原创在线视频| 中文字幕乱码久久午夜不卡| 韩国女主播一区| 日韩女优制服丝袜电影| 亚欧色一区w666天堂| 91国内精品野花午夜精品| 亚洲国产高清不卡| 国产成人在线影院| 久久精子c满五个校花| 激情五月激情综合网| 91精品国产黑色紧身裤美女| 性做久久久久久久久| 欧美日韩在线播| 亚洲综合一二三区| 欧美视频在线一区| 亚洲一区二区三区四区在线观看 | 性做久久久久久免费观看欧美| 91一区一区三区| 亚洲欧美日韩人成在线播放| 成人av在线观| 中文字幕一区视频| 91色视频在线| 一个色在线综合| 欧美日韩夫妻久久| 日日夜夜一区二区| 日韩视频免费观看高清完整版| 午夜精品福利一区二区三区蜜桃| 欧美蜜桃一区二区三区| 石原莉奈在线亚洲三区| 欧美一区二区高清| 国产原创一区二区| 国产精品每日更新| 色94色欧美sute亚洲13| 亚洲国产精品一区二区久久| 91精品国产乱| 国产精品一卡二| 成人免费在线播放视频| 欧美午夜精品理论片a级按摩| 午夜精品久久久久影视| 欧美电影免费观看完整版| 国产a级毛片一区| 亚洲一区二区黄色| 精品国产自在久精品国产| 成人不卡免费av| 亚洲高清免费一级二级三级| 精品国产麻豆免费人成网站| www.成人在线| 亚洲成av人片在线观看| 亚洲精品一区二区三区精华液 | 欧美高清视频不卡网| 黄色成人免费在线| 亚洲伦理在线免费看| 国产精品国产三级国产| 韩国一区二区三区| 亚洲卡通欧美制服中文| 一区二区三区中文字幕电影| 不卡一区二区中文字幕| 日韩高清一级片| 亚洲视频在线观看三级| 日韩欧美色电影| 欧美在线观看视频一区二区三区 | 精品少妇一区二区三区日产乱码| 成人午夜在线播放| 日韩综合在线视频| 欧美影院精品一区| 成人精品小蝌蚪| 美女视频一区二区三区| 樱桃视频在线观看一区| 久久婷婷国产综合国色天香| 欧美日韩一区二区在线观看| 国产成人在线视频免费播放| 亚洲成人av中文| 1区2区3区国产精品| 精品国产第一区二区三区观看体验| 91在线精品一区二区| 国产精品18久久久久| 青椒成人免费视频| 亚洲制服丝袜av| 国产精品福利一区二区| 久久久噜噜噜久久人人看| 欧美肥胖老妇做爰| 欧美午夜精品久久久| 91视频在线看| 国产成人aaa| 国产一区二区三区免费看 | 中文字幕av资源一区| 精品奇米国产一区二区三区| 欧美日韩一区二区三区四区五区| 成人免费视频一区二区| 国产九色精品成人porny| 久久精品国产一区二区三区免费看| 亚洲国产精品一区二区尤物区| 亚洲色大成网站www久久九九| 国产欧美一区二区精品秋霞影院| 欧美一级艳片视频免费观看| 欧美区视频在线观看| 在线观看亚洲一区| 欧美亚洲免费在线一区| 91免费在线看| 色8久久人人97超碰香蕉987| 在线一区二区观看| 色88888久久久久久影院按摩| 一本色道**综合亚洲精品蜜桃冫| 国产凹凸在线观看一区二区| 丁香另类激情小说| 成人av动漫网站| 99免费精品视频| 色激情天天射综合网| 色琪琪一区二区三区亚洲区| 欧美亚洲一区二区在线观看| 欧美三日本三级三级在线播放| 精品视频一区三区九区| 欧美一区二区精品| 久久精品亚洲精品国产欧美| 中文一区二区在线观看| 亚洲视频电影在线| 亚洲国产一区在线观看| 日本一不卡视频| 六月丁香婷婷色狠狠久久| 久久精品国产成人一区二区三区 | 亚洲精品在线观看视频| 欧美国产激情一区二区三区蜜月| 欧美经典三级视频一区二区三区| 中文字幕亚洲精品在线观看| 亚洲成人三级小说| 国产一区二区三区免费观看| 91同城在线观看| 91精品国模一区二区三区| 精品国产免费久久| 中文字幕佐山爱一区二区免费| 亚洲国产视频直播| 经典三级在线一区| 一本色道久久加勒比精品| 在线成人av网站| 国产欧美日韩视频在线观看| 一区二区三区91| 理论电影国产精品| 99精品国产视频| 欧美电影一区二区| 国产精品网曝门| 亚洲成人一二三| 国产激情91久久精品导航| 在线免费不卡视频| 亚洲成a人在线观看| 一区二区免费在线| 国产一区二区h| 51午夜精品国产| 亚洲少妇最新在线视频| 久久精品国产亚洲高清剧情介绍| 91在线一区二区三区| 欧美成人国产一区二区| 一区二区三区在线视频播放| 国产一区二区久久| 91精品国产一区二区三区蜜臀 | 午夜电影久久久| 成人午夜在线视频| 精品国精品国产尤物美女| 亚洲国产综合色| 91免费版在线| 亚洲综合色丁香婷婷六月图片| 国内外成人在线| 欧美一级艳片视频免费观看| 亚洲综合成人在线| 不卡影院免费观看| 亚洲国产精品精华液2区45| 日本三级亚洲精品| 欧美在线看片a免费观看| 中文字幕亚洲在| 成人激情免费视频| 中文字幕不卡在线观看| 国产福利一区二区| 久久久久国产精品厨房| 黄网站免费久久| 26uuu精品一区二区| 麻豆成人免费电影| 日韩女优av电影在线观看| 青青草91视频| 日韩精品中文字幕一区二区三区| 亚洲福利视频一区二区| 在线不卡中文字幕播放| 日本中文字幕不卡| 欧美大片在线观看|