电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

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

python OpenCV學習筆記

瀏覽:113日期: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 編程
相關文章:
主站蜘蛛池模板: 耐火砖厂家,异形耐火砖-山东瑞耐耐火材料厂 | 活性氧化铝|无烟煤滤料|活性氧化铝厂家|锰砂滤料厂家-河南新泰净水材料有限公司 | 假肢-假肢价格-假肢厂家-河南假肢-郑州市力康假肢矫形器有限公司 | 高铝矾土熟料_细粉_骨料_消失模_铸造用铝矾土_铝酸钙粉—嵩峰厂家 | 紫外荧光硫分析仪-硫含量分析仪-红外光度测定仪-泰州美旭仪器 | YAGEO国巨电容|贴片电阻|电容价格|三星代理商-深圳市巨优电子有限公司 | 昆明网络公司|云南网络公司|昆明网站建设公司|昆明网页设计|云南网站制作|新媒体运营公司|APP开发|小程序研发|尽在昆明奥远科技有限公司 | 档案密集架_电动密集架_移动密集架_辽宁档案密集架-盛隆柜业厂家现货批发销售价格公道 | 福建自考_福建自学考试网 | 超声波清洗机_超声波清洗机设备_超声波清洗机厂家_鼎泰恒胜 | 等离子空气净化器_医用空气消毒机_空气净化消毒机_中央家用新风系统厂家_利安达官网 | 硅胶管挤出机厂家_硅胶挤出机生产线_硅胶条挤出机_臣泽智能装备 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | 细石混凝土泵_厂家_价格-烟台九达机械有限公司 | 振动时效_振动时效仪_超声波冲击设备-济南驰奥机电设备有限公司 北京宣传片拍摄_产品宣传片拍摄_宣传片制作公司-现像传媒 | SDG吸附剂,SDG酸气吸附剂,干式酸性气体吸收剂生产厂家,超过20年生产使用经验。 - 富莱尔环保设备公司(原名天津市武清县环保设备厂) | 合同书格式和范文_合同书样本模板_电子版合同,找范文吧 | 蒸汽热收缩机_蒸汽发生器_塑封机_包膜机_封切收缩机_热收缩包装机_真空机_全自动打包机_捆扎机_封箱机-东莞市中堡智能科技有限公司 | 铝单板_铝窗花_铝单板厂家_氟碳包柱铝单板批发价格-佛山科阳金属 | 上海恒驭仪器有限公司-实验室平板硫化机-小型平板硫化机-全自动平板硫化机 | 柴油机_柴油发电机_厂家_品牌-江苏卡得城仕发动机有限公司 | 超声波气象站_防爆气象站_空气质量监测站_负氧离子检测仪-风途物联网 | 贴板式电磁阀-不锈钢-气动上展式放料阀-上海弗雷西阀门有限公司 工业机械三维动画制作 环保设备原理三维演示动画 自动化装配产线三维动画制作公司-南京燃动数字 | 硅PU球场、篮球场地面施工「水性、环保、弹性」硅PU材料生产厂家-广东中星体育公司 | 济南货架定做_仓储货架生产厂_重型货架厂_仓库货架批发_济南启力仓储设备有限公司 | 定制/定做冲锋衣厂家/公司-订做/订制冲锋衣价格/费用-北京圣达信 | 优考试_免费在线考试系统_培训考试系统_题库系统_组卷答题系统_匡优考试 | 304不锈钢无缝管_不锈钢管厂家 - 隆达钢业集团有限公司 | 聚氨酯催化剂K15,延迟催化剂SA-1,叔胺延迟催化剂,DBU,二甲基哌嗪,催化剂TMR-2,-聚氨酯催化剂生产厂家 | 天津中都白癜风医院_天津白癜风医院_天津治疗白癜风 | 直读光谱仪,光谱分析仪,手持式光谱仪,碳硫分析仪,创想仪器官网 | 铝镁锰板_铝镁锰合金板_铝镁锰板厂家_铝镁锰金属屋面板_安徽建科 | 微型气象仪_气象传感器_防爆气象传感器-天合传感器大全 | 低温柔性试验仪-土工布淤堵-沥青车辙试验仪-莱博特(天津)试验机有限公司 | 不锈钢列管式冷凝器,换热器厂家-无锡飞尔诺环境工程有限公司 | 上海租奔驰_上海租商务车_上海租车网-矢昂汽车服务公司 | 铣刨料沥青破碎机-沥青再生料设备-RAP热再生混合料破碎筛分设备 -江苏锡宝重工 | 协议书_协议合同格式模板范本大全| 智能家居全屋智能系统多少钱一套-小米全套价格、装修方案 | 东莞螺杆空压机_永磁变频空压机_节能空压机_空压机工厂批发_深圳螺杆空压机_广州螺杆空压机_东莞空压机_空压机批发_东莞空压机工厂批发_东莞市文颖设备科技有限公司 | 湖北省煤炭供应链综合服务平台 | 农业仪器网 - 中国自动化农业仪器信息交流平台 |