十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專(zhuān)業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
Opencv常見(jiàn)圖像格式Data Type的使用方法?很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來(lái)學(xué)習(xí)下,希望你能有所收獲。

cv::Mat 圖像格式 (Data Type)命名規(guī)則
通用的參數(shù)命名格式為:
CV_{元素比特?cái)?shù)}{元素類(lèi)型}C{通道數(shù)}
1最常見(jiàn)的 CV_8UC3 就表示為 3通道Unsigned 8bits 格式的矩陣
2有些圖片存儲(chǔ)格式是 32位float ,則對(duì)應(yīng)的圖像格式為:CV_32FC1,CV_32FC2,CV_32FC3 等;
3如果圖片存儲(chǔ)格式是 64位double ,則對(duì)應(yīng)的圖像格式為:CV_64FC1,CV_64FC2,CV_64FC3 等。
int值映射關(guān)系
矩陣元素的數(shù)據(jù)類(lèi)型也可用不同的 int 值來(lái)替代,其對(duì)應(yīng)關(guān)系如下表:

取值范圍

at所訪問(wèn)的數(shù)據(jù)類(lèi)型
由于 at 方法接受的是 uchar 這樣的數(shù)據(jù)類(lèi)型,而非 CV_8U。 若是要使用 at 方法訪問(wèn)數(shù)據(jù)元素,在已知通道數(shù)和每個(gè)通道數(shù)據(jù)類(lèi)型的情況下,指定給 at 方法的數(shù)據(jù)類(lèi)型如下表所示:

Vec2b:表示每個(gè)Vec2b對(duì)象中,可以存儲(chǔ)2個(gè)char(字符型)數(shù)據(jù)
Vec3b:表示每一個(gè)Vec3b對(duì)象中,可以存儲(chǔ)3個(gè)char(字符型)數(shù)據(jù),比如可以用這樣的對(duì)象,去存儲(chǔ)RGB圖像
Vec4b:表示每一個(gè)Vec4b對(duì)象中,可以存儲(chǔ)4個(gè)字符型數(shù)據(jù),可以用這樣的類(lèi)對(duì)象去存儲(chǔ)—4通道RGB+Alpha的圖
對(duì)應(yīng)的 Vec類(lèi) 的定義如下:
template
class Vec : public Matx<_Tp, n, 1> {...};
typedef VecVec2b;
typedef VecVec3b;
typedef VecVec4b;
typedef VecVec2s;
typedef VecVec3s;
typedef VecVec4s;
typedef VecVec2i;
typedef VecVec3i;
typedef VecVec4i;
typedef VecVec2f;
typedef VecVec3f;
typedef VecVec4f;
typedef VecVec6f;
typedef VecVec2d;
typedef VecVec3d;
typedef VecVec4d;
typedef VecVec6d;
樣例1
使用無(wú)參數(shù)構(gòu)造函數(shù),創(chuàng)建Mat對(duì)象
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類(lèi)型、3表示三個(gè)通道。
樣例2
使用行、列、類(lèi)型、Scalar向量四個(gè)參數(shù)的構(gòu)造函數(shù)創(chuàng)建Mat對(duì)象
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)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,的支持。