opencv---顏色空間轉化并實現物體跟蹤

一、圖像處理的基本操作

因為這是第一篇寫opencv的筆記,故先講講在python下寫opencv的基本操作。總共總結了三點如下:

  1. 開頭一定要加編碼聲明:-*- coding: utf-8 -*-
  2. python下記得引入opencv模塊:import cv2
  3. 要知道如何讀取并展示圖片,代碼如下:

# -*- coding: utf-8 -*-
import cv2
import numpy as np
name1=cv2.imread(圖片名稱,如何讀取)#讀取圖片
cv2.imshow(窗口名字,name1)#展示圖片
cv2.waitKey()#這是一個鍵盤綁定函數,只需記到在cv2.imshow后一定要加上這句.
cv2.destoryAllWindows()


二、顏色空間轉化

當我們讀取完一張圖片,一般情況下它都是BGR模式。那么什么是BGR模式呢?總所周知,色彩中不能再分解的基本色稱之為原色,原色可以合成其他的顏色,而其他顏色卻不能還原出本來的色彩。我們通常說光的三原色,即紅、綠、藍,它們按不同比例的相互混合是可以變成其他所有顏色。不知道你們用過Photoshop沒有,里面的調色板就是依靠這個BGR原理。

??? ? ?? ? ? ? ??

白色:RGB(255,255,255)

黑色:RGB(0,0,0)

紅色:RGB(255,0,0)

綠色:RGB(0,255,0)

藍色:RGB(0,0,255)

青色:RGB(0,255,255)

紫色:RGB(255,0,255)


當然顏色模式不止只有BGR一種,在這里我再向大家介紹一種模式,它叫HSV。咋一聽,大家是不是以為是在講病毒呢?哈哈,這只是恰巧重名而已,大家莫慌。HSV(Hue,Saturation,Value)是根據顏色的直觀特性由A.R.Smith在1978年創建的一種顏色空間,也稱六角錐體模型。這個模型中顏色的參數分別是:色調(H),飽和度(S),亮度(V)。HSV對用戶來說是一種直觀的顏色模型,它與BGR模式有很大的不同。Photoshop也有相似的模式,如下圖所示;


色調:用角度度量,取值范圍為0°~360°,從紅色開始按逆時針方向計算,紅色為0°,綠色為120°,藍色為240°。它們的補色是:黃色為60°,青色為180°,品紅為300°;

飽和度:取值范圍為0.0~1.0,值越大,顏色越飽和;

亮度:取值范圍為0(黑色)~255(白色);


現在向大家介紹一種使顏色模式轉化的函數,cv2.cvtColor(input_image,flag)其中第一個參數是目標圖片,第二個參數是轉化類型,如cv2.COLOR_BGR2GRAY、cv2.COLOR_BGR2HSV.下面這段代碼是將一個名為"1,jpg"的圖片改為HSV模式.

# -*- coding: utf-8 -*-
import cv2
import numpy as np
a=cv2.imread('1.jpg')#讀取一張圖片
b=cv2.cvtColor(a,cv2.COLOR_BGR2HSV)#轉化為HSV

??


三、物體跟蹤

在我們將一幅圖從BGR模式改為HSV后,我們就可以利用這一點來提取帶有特定顏色的物體,這是因為在HSV顏色空間中要比在BGR空間中更容易表示一個特定顏色。

# -*- coding: utf-8 -*-
import cv2
import numpy as np
a=cv2.imread('2.jpg')#讀取一張圖片
b=cv2.cvtColor(a,cv2.COLOR_BGR2HSV)#轉化為HSV
lower_blue=np.array([110,50,50])
upper_blue=np.array([130,255,255])#設定藍色的閾值
mask=cv2.inRange(b,lower_blue,upper_blue)#根據閾值構建掩摸
res=cv2.bitwise_and(b,b,mask=mask)# 對原圖像和掩模進行位運算
cv2.imshow('mask',mask)
cv2.imshow('b',b)
cv2.imshow('first',a)
cv2.waitKey()
cv2.destoryAllWindows()


 







轉載于:https://www.cnblogs.com/longwhite/p/10397783.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/286060.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/286060.shtml
英文地址,請注明出處:http://en.pswp.cn/news/286060.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

簽到功能完成03《ivx低代碼簽到系統制作》

制作iVX 低代碼項目需要進入在線IDE:https://editor.ivx.cn/ 一、簽到頁制作 上一節完成了簽到內容的發布,那我們接下來如何制作一個簽到頁面并且簽到呢? 此時我們先創建一個頁面叫做簽到二維碼頁面: 隨后直接預覽這個頁面&am…

System.CommandLine參數Argument

前兩篇說到Command和Option,這篇說說Argument。Argument的用法和Option很像,只是他的構造和屬性有些差別,再就是在運行輸入時有區別,接下來看看實現。一個參數//創建根命令 var rootCommand new RootCommand("這是一個命令行…

php 迭代器

迭代器(Iterator)模式,又叫做游標(Cursor)模式。GOF給出的定義為:提供一種方法訪問一個容器(container)對象中各個元素,而又不需暴露該對象的內部細節。 百度百科: http:…

Kotlin和Java混合開發總結(基于Kotlin1.3.0版本)

我本來是不想學習kotlin的,但是現在的形勢,很多公司都在使用kotlin開發,可以說學會kotlin也是無奈之舉,既然是潮流,谷歌也在大力推廣,所以還是只能硬著頭皮逼迫自己學一下,也能更快適應公司的需…

GitHub中watch、star、fork的作用

star 的作用是收藏,目的是方便以后查找。watch 的作用是關注,目的是等作者更新的時候,你可以收到通知。fork 的作用是參與,目的是你增加新的內容,然后 Pull Request,把你的修改和主倉庫原來的內容合并。最早…

【MATLAB統計分析與應用100例】案例015:matlab讀取Excel數據,進行值聚類分析

1. 聚類分析輪廓圖 2. matlab完整代碼 %*****計算例9.1的距離矩陣 x = [1, 2, 6, 8, 11];

C語言試題五十五之m個人的成績存放在score數組中,請編寫函數function,它的功能是:將高于平均分的人數作為函數值返回,將高于平均分的分數放在high所指定的數組中。

??個人主頁:個人主頁 ??系列專欄:C語言試題200例目錄 ??推薦一款刷算法、筆試、面經、拿大公司offer神器 ?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 m個人的成…

01超精美漸變色動態背景完整示例【CSS動效實戰(純CSS與JS動效)】

若是大一學子或者是真心想學習剛入門的小伙伴可以私聊我,若你是真心學習可以送你書籍,指導你學習,給予你目標方向的學習路線,無套路,博客為證。 本節案例如下(其他動效篇幅原因逐步講解,歡迎三…

Liferay 用本地私服(nexus) 打包部署Portlet應用

當我們使用搭建一個nexus本地倉庫,并且配置settings.xml來讓應用啟用這個倉庫。我們使用Liferay 6.1.10的archetype來創建liferay portlet, 如下圖: 當我們運行命令mvn package liferay:deploy時,會出現以下錯誤: [DEBUG] Using c…

.NET Core 分布式事務 CAP 發布 6.1 正式版

前言我們很高興宣布 CAP 發布 6.1 版本正式版,在這個版本中我們主要針對目前已經發現的幾個BUG進行了修復了以及添加了一些小特性。那么,接下來我們具體看一下吧。總覽可能有些人還不知道 CAP 是什么,老規矩來一個簡介。CAP地址:h…

【MATLAB統計分析與應用100例】案例016:matlab讀取Excel數據,進行樣品系統聚類分析

1. 聚類分析結果 2. matlab完整代碼 (1)讀取數據,并進行標準化 [X,textdata] = xlsread(examp09_02.xls); % 從Excel文件中讀取數據 X = zscore(X

解決React Native報錯:Error:Found unexpected optical bounds (red pixel)

問題背景 同樣是在升級 gradle plugin V2.2.3 --> gradle plugin V3.0.1后,運行至打包APK期間報錯: Error:found unexpected optical bounds (red pixel) on top border at x14.(錯誤:在X14的上邊框上發現意外的光學邊界&am…

C語言試題五十六之計算并輸出給定整數n的所有因子(不包括1與自身)之和。規定n的值不大于1000。

??個人主頁:個人主頁 ??系列專欄:C語言試題200例目錄 ??推薦一款刷算法、筆試、面經、拿大公司offer神器 ?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 請編寫函數…

webpack 入門

什么是WebPack,為什么要使用它? 為什要使用WebPack 現今的很多網頁其實可以看做是功能豐富的應用,它們擁有著復雜的JavaScript代碼和一大堆依賴包。為了簡化開發的復雜度,前端社區涌現出了很多好的實踐方法 模塊化,讓我…

mysql 列類型

列類型整型 tinyint,smallint,mediumint,int,bigint (可選參數unsigned ,(M,zerofill,結合使用才有意義))浮點型 float(可選參數D,M) decimal(可選參數D,M)字…

使用vsftp虛擬用戶實現安全訪問控制

一、ftp連接方式 1、命令連接 ftp在與用戶交互時,首先打開的是TCP的21號端口,建立命令連接,這個連接會始終存在,直到用戶輸入bye的那一刻,才斷開命令連接。 2、數據連接 1)主動連接 主動連接是基于TCP21號端…

【前端就業課 第二階段】CSS 零基礎到實戰(04)定位

若是大一學子或者是真心想學習剛入門的小伙伴可以私聊我,若你是真心學習可以送你書籍,指導你學習,給予你目標方向的學習路線,無套路,博客為證。 一、定位 定位分為相對定位以及絕對定位。 相對定位可以理解為在 HTM…

Android TextView設置ClickableSpan 點擊結尾空白位置也響應點擊的問題

解決辦法,在后邊緊接著追加一個0寬度字符: builder.append("\u200b"); 相關知識: “\u200b” 為 Unicode Character ‘ZERO WIDTH SPACE’ (U200B),可用于內容標識,不占位數(寬度0&#xff0…

【MATLAB統計分析與應用100例】案例017:matlab讀取Excel數據,進行變量系統聚類分析

1. 變量系統聚類分析結果 2. matlab完整代碼 (1)讀取數據,并轉為距離向量 [X,textdata] = xlsread(examp09_03.xls); % 從Excel文件中讀取數據 y = 1 -

WinForm 之 窗口最小化到托盤及右鍵圖標顯示菜單

日常開發有時候需要實現窗口最小化到系統托盤,本文就來講講該如何實現winfrom最小化到系統托盤,本例子基于VS2019編寫。用C#開發winform桌面程序時,程序啟動后,默認是顯示在桌面而且在任務欄中有對應的圖標。有的時候,…