日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

python OpenCV學習筆記

瀏覽:225日期:2022-06-23 16:47:28
圖像翻轉

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

pip install imutils

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

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

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

import cv2import 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 = Falsewhile 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: breakvc.release()cv2.destroyAllWindows()

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

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

圖像輪廓排序

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

from imutils import contoursimport cv2’’’contours.sort_contours可選排序方式:'left-to-right', 'right-to-left', 'top-to-bottom', 'bottom-to-top'返回值為輪廓和外接矩形contours.label_contourcontours包內自帶的畫輪廓的函數,可以直接用,然后可以在圖片上標出輪廓序號也可以直接使用cv2.drawContours直接畫輪廓’’’img = cv2.imread(r'D:opencv-workspaceOpencvtest17--VScodeshapes.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 contoursimport cv2’’’contours.sort_contours可選排序方式:'left-to-right', 'right-to-left', 'top-to-bottom', 'bottom-to-top'返回值為輪廓和外接矩形contours.label_contourcontours包內自帶的畫輪廓的函數,可以直接用,然后可以在圖片上標出輪廓序號也可以直接使用cv2.drawContours直接畫輪廓’’’img = cv2.imread(r'D:opencv-workspaceOpencvtest17--VScodeshapes.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()

python OpenCV學習筆記

顏色識別基礎顏色識別

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

’’’使用下面這個函數進行轉換,第一個參數填寫要轉換的圖片,第二個參數填寫cv2.COLOR_BGR2HSV’’’cv2.cvtColor

import cv2import 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-workspaceOpencvtest16--VScodephoto.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()

python OpenCV學習筆記

python OpenCV學習筆記

python OpenCV學習筆記

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

根據BGR獲取HSV

import cv2color = 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 cv2import numpy as npdef 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-workspaceOpencvtest16--VScodetest.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的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
羞羞答答国产精品www一本| 久久免费精品| 久久激情中文| 日韩在线欧美| 日本不卡免费高清视频在线| 老司机精品视频在线播放| 国产精品一区二区三区www| 欧美日一区二区三区在线观看国产免 | 蜜桃视频一区二区三区 | 蜜臀久久久99精品久久久久久| 女人天堂亚洲aⅴ在线观看| 亚洲免费精品| 蜜臀91精品一区二区三区| 亚洲2区在线| 国产欧美啪啪| 精品成av人一区二区三区| 国产传媒在线观看| 久久人人97超碰国产公开结果| a国产在线视频| 日韩久久精品| 亚洲综合欧美| 久久狠狠久久| 精品99久久| 亚洲大片在线| 综合激情视频| 嫩呦国产一区二区三区av| 久久久91麻豆精品国产一区| 国产精品久久久久久久久妇女| 久久精品二区三区| 亚洲免费一区二区| 国产日韩精品视频一区二区三区| 丰满少妇一区| 亚洲一区二区成人| 日本中文字幕一区二区| 久久女人天堂| 欧美午夜不卡| 国产精品久久久久久久久免费高清 | 蜜桃免费网站一区二区三区| 91精品啪在线观看国产爱臀| 精品视频在线你懂得| 日韩精品影视| 免费黄网站欧美| 国产精品.xx视频.xxtv| 99精品视频在线| 视频一区中文字幕精品| 国精品产品一区| 欧美不卡在线| 69精品国产久热在线观看| 国产资源在线观看入口av| 亚洲成人日韩| 久久国产人妖系列| 九色porny丨国产首页在线| 中文精品电影| 91亚洲国产成人久久精品| 蜜桃久久av一区| 蜜桃久久久久| 亚洲专区欧美专区| 亚洲天堂久久| 欧美日韩一区二区国产 | 欧美成a人免费观看久久| 一区二区精品| 欧美13videosex性极品| 免费高清在线一区| 亚洲成a人片| 久久激情五月婷婷| 欧美在线资源| 高潮久久久久久久久久久久久久| 中文一区一区三区免费在线观 | 伊人久久亚洲| 日韩久久一区二区三区| 日韩av资源网| 99精品视频精品精品视频| 国产精品久一| 一区二区三区国产在线| 欧美香蕉视频| 欧美aaaaaa午夜精品| 欧美综合国产| 另类中文字幕国产精品| 国产无遮挡裸体免费久久| 久久网站免费观看| 久久精品一区| 日韩在线观看中文字幕| 欧美二区视频| 91视频一区| 国产精品调教视频| 一区二区国产在线观看| 91精品婷婷色在线观看| 国产一区二区色噜噜| 欧美日韩一区二区国产| 在线看片日韩| 亚洲在线网站| 免费av一区| 久久久777| 国产一区二区三区日韩精品| 日韩国产91| 国产婷婷精品| 成人免费网站www网站高清| 久久久国产精品入口麻豆| 日韩精品欧美大片| 午夜在线精品偷拍| 国产在线日韩| 99精品美女| 欧美少妇精品| 精品三级久久久| 久久国产人妖系列| 日韩精品91亚洲二区在线观看| 香蕉久久久久久久av网站| 久久精品影视| 99视频精品视频高清免费| 92国产精品| 国产在线不卡| 四虎精品永久免费| 98精品视频| 日韩电影免费网址| 亚洲一区二区毛片| 今天的高清视频免费播放成人| 久久精品99久久久| 国产乱码精品一区二区三区亚洲人| 国产精品一区二区美女视频免费看| 亚洲成人精品| 亚洲人成亚洲精品| 在线视频精品| 亚洲精品一级| 日韩av在线中文字幕| 婷婷激情一区| 怡红院精品视频在线观看极品| 日本午夜大片a在线观看| 日韩中文字幕一区二区三区| 日韩毛片在线| 六月婷婷综合| 97精品国产一区二区三区 | 99精品网站| 午夜久久福利| 久久av在线| 亚洲精品欧洲| 青草综合视频| 国产精品大片免费观看| 鲁大师精品99久久久| 国产精品magnet| 久久只有精品| 人人草在线视频| 国产综合视频| 午夜在线观看免费一区| 在线看片一区| 欧美日本二区| 麻豆91在线播放| av免费不卡国产观看| 色88888久久久久久影院| 激情综合网五月| 蜜臀久久99精品久久久画质超高清 | 美女久久一区| 日韩精品三级| 国产精品hd| 日韩一区二区中文| 欧美一区二区三区激情视频| 女主播福利一区| 日本一区二区三区视频在线看| 国产私拍福利精品视频二区| 福利精品一区| 欧美1级日本1级| 四虎在线精品| 成人在线观看免费视频| 日韩中文首页| 亚洲一区激情| 久久99久久久精品欧美| 免费观看亚洲| 欧美va亚洲va日韩∨a综合色| 视频一区二区不卡| 国产精品多人| 婷婷亚洲综合| 欧美精品三级在线| 日韩成人亚洲| 亚洲欧洲日韩精品在线| 精品欧美视频| av不卡免费看| 麻豆成人在线观看| 欧美在线亚洲综合一区| 亚洲精品成人一区| 美女久久精品| 日韩亚洲在线| 国产精品15p| 99国产精品| 国产精品宾馆| 尹人成人综合网| 乱一区二区av| 久热re这里精品视频在线6| 美女在线视频一区| 99亚洲视频| 精品久久精品| 丝袜a∨在线一区二区三区不卡| 麻豆成人综合网| 国产精品婷婷| 精品九九久久| 亚洲精品美女91| 日韩欧美一区二区三区在线视频| 亚洲精品裸体| 亚洲香蕉网站| 精品视频一区二区三区在线观看| 日韩中文字幕91| 播放一区二区|