Opencv常見圖像格式Data Type及代碼實(shí)例
cv::Mat 圖像格式 (Data Type)命名規(guī)則
通用的參數(shù)命名格式為:
CV_{元素比特?cái)?shù)}{元素類型}C{通道數(shù)}
1最常見的 CV_8UC3 就表示為 3通道Unsigned 8bits 格式的矩陣
- 8U:8bit unsigned
- C3:通道數(shù)為 3
2有些圖片存儲(chǔ)格式是 32位float ,則對應(yīng)的圖像格式為:CV_32FC1,CV_32FC2,CV_32FC3 等;
3如果圖片存儲(chǔ)格式是 64位double ,則對應(yīng)的圖像格式為:CV_64FC1,CV_64FC2,CV_64FC3 等。
int值映射關(guān)系
矩陣元素的數(shù)據(jù)類型也可用不同的 int 值來替代,其對應(yīng)關(guān)系如下表:
取值范圍
at所訪問的數(shù)據(jù)類型
由于 at 方法接受的是 uchar 這樣的數(shù)據(jù)類型,而非 CV_8U。 若是要使用 at 方法訪問數(shù)據(jù)元素,在已知通道數(shù)和每個(gè)通道數(shù)據(jù)類型的情況下,指定給 at 方法的數(shù)據(jù)類型如下表所示:
Vec2b:表示每個(gè)Vec2b對象中,可以存儲(chǔ)2個(gè)char(字符型)數(shù)據(jù)
Vec3b:表示每一個(gè)Vec3b對象中,可以存儲(chǔ)3個(gè)char(字符型)數(shù)據(jù),比如可以用這樣的對象,去存儲(chǔ)RGB圖像
Vec4b:表示每一個(gè)Vec4b對象中,可以存儲(chǔ)4個(gè)字符型數(shù)據(jù),可以用這樣的類對象去存儲(chǔ)—4通道RGB+Alpha的圖
對應(yīng)的 Vec類 的定義如下:
template<typename _Tp, int n> class Vec : public Matx<_Tp, n, 1> {...};
typedef Vec<uchar, 2> Vec2b;
typedef Vec<uchar, 3> Vec3b;
typedef Vec<uchar, 4> Vec4b;
typedef Vec<short, 2> Vec2s;
typedef Vec<short, 3> Vec3s;
typedef Vec<short, 4> Vec4s;
typedef Vec<int, 2> Vec2i;
typedef Vec<int, 3> Vec3i;
typedef Vec<int, 4> Vec4i;
typedef Vec<float, 2> Vec2f;
typedef Vec<float, 3> Vec3f;
typedef Vec<float, 4> Vec4f;
typedef Vec<float, 6> Vec6f;
typedef Vec<double, 2> Vec2d;
typedef Vec<double, 3> Vec3d;
typedef Vec<double, 4> Vec4d;
typedef Vec<double, 6> Vec6d;
樣例1
使用無參數(shù)構(gòu)造函數(shù),創(chuàng)建Mat對象
Mat image = Mat();
image.create(4, 4, CV_8UC3);
或者
Mat m = Mat(4, 4, CV_8UC3)
此刻表示創(chuàng)建一個(gè)4x4大小的像素塊,每個(gè)像素都是三通道每個(gè)通道的位數(shù)都是8位,一個(gè)字節(jié)的。上述CV_8UC3中的8表示8位、UC表示uchar類型、3表示三個(gè)通道。
樣例2
使用行、列、類型、Scalar向量四個(gè)參數(shù)的構(gòu)造函數(shù)創(chuàng)建Mat對象
Mat m = Mat(4, 4, CV_8UC3, Scalar(0, 255, 255);
或者
Mat m = Mat(Size(4, 4), CV_8UC3, Scalar(255, 0, 0));
同樣表示創(chuàng)建一個(gè)4x4的像素塊,唯一不一樣的是顏色不是默認(rèn)值而是我們指定的三通道顏色值向量Scalar(0, 255, 255)。其中Scalar向量數(shù)目永遠(yuǎn)是等于通道數(shù)目
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Python+OpenCV圖像處理——圖像二值化的實(shí)現(xiàn)
- Python+OpenCV圖像處理——實(shí)現(xiàn)輪廓發(fā)現(xiàn)
- Python+OpenCV圖像處理——實(shí)現(xiàn)直線檢測
- Python+OpenCV圖像處理—— 色彩空間轉(zhuǎn)換
- Python+OpenCV圖像處理——打印圖片屬性、設(shè)置存儲(chǔ)路徑、調(diào)用攝像頭
- OpenCV利用python來實(shí)現(xiàn)圖像的直方圖均衡化
- Python Opencv圖像處理基本操作代碼詳解
- OpenCV實(shí)現(xiàn)圖像轉(zhuǎn)換為漫畫效果
- OpenCV實(shí)現(xiàn)二值圖像的邊緣光滑處理
相關(guān)文章
pytorch模型保存到本地后,如何實(shí)現(xiàn)繼續(xù)訓(xùn)練
在PyTorch中,保存和加載模型對于實(shí)現(xiàn)模型訓(xùn)練的中斷和恢復(fù)非常有用,保存模型主要有兩種方式:一是保存整個(gè)模型包括結(jié)構(gòu)與參數(shù);二是僅保存模型的state_dict,加載模型時(shí),若保存了整個(gè)模型則直接加載,若僅保存了state_dict,則需先實(shí)例化模型結(jié)構(gòu)后加載2024-09-09詳解如何使用Python處理INI、YAML和JSON配置文件
在軟件開發(fā)中,配置文件是存儲(chǔ)程序配置信息的常見方式,INI、YAML和JSON是常用的配置文件格式,各自有著特定的結(jié)構(gòu)和用途,Python擁有豐富的庫和模塊,本文將重點(diǎn)探討如何使用Python處理這三種格式的配置文件,需要的朋友可以參考下2023-12-12Python實(shí)現(xiàn)備份MySQL數(shù)據(jù)庫的方法示例
這篇文章主要介紹了Python實(shí)現(xiàn)備份MySQL數(shù)據(jù)庫的方法,涉及Python針對mysql數(shù)據(jù)庫的連接及基于mysqldump命令操作數(shù)據(jù)庫備份的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2018-01-01Python StringIO模塊實(shí)現(xiàn)在內(nèi)存緩沖區(qū)中讀寫數(shù)據(jù)
這篇文章主要介紹了Python StringIO模塊實(shí)現(xiàn)在內(nèi)存緩沖區(qū)中讀寫數(shù)據(jù),本文講解了使用實(shí)例、StringIO類中的方法、文件操作和字符串操作示例等內(nèi)容,需要的朋友可以參考下2015-04-04Python startswith()和endswith() 方法原理解析
這篇文章主要介紹了Python startswith()和endswith() 方法原理解析,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-04-04用pytorch的nn.Module構(gòu)造簡單全鏈接層實(shí)例
今天小編就為大家分享一篇用pytorch的nn.Module構(gòu)造簡單全鏈接層實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-01-01