国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

[C++] opencv - imwrite函數(shù)介紹和使用場(chǎng)景

這篇具有很好參考價(jià)值的文章主要介紹了[C++] opencv - imwrite函數(shù)介紹和使用場(chǎng)景。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

一、函數(shù)介紹

OpenCV 是一個(gè)開(kāi)源的計(jì)算機(jī)視覺(jué)庫(kù),它包含了許多用于圖像處理和計(jì)算機(jī)視覺(jué)任務(wù)的函數(shù)。其中,imsave() 函數(shù)是 OpenCV 中的一個(gè)非常有用的函數(shù),它可以讓程序?qū)⑻幚砗蟮膱D像數(shù)據(jù)保存到指定的文件中。

二、函數(shù)原型

bool imwrite(const String& filename, InputArray image, const std::vector<int>& params);

其中,
filename 參數(shù)表示要保存的文件名
image 參數(shù)表示要保存的圖像數(shù)據(jù)
params 可選參數(shù)表示保存圖像使用的參數(shù)

params 使用說(shuō)明:
該參數(shù)需要按照參數(shù)id+參數(shù)值成對(duì)出現(xiàn),可以出現(xiàn)多對(duì)參數(shù)值(比如 (paramId_1, paramValue_1, paramId_2, paramValue_2, ...)),但必須保證這些參數(shù)對(duì)是相關(guān)的,比如保存JPG圖像時(shí),只能使用和JPEG相關(guān)的參數(shù)ID進(jìn)行組合使用。

可以使用的參數(shù)Id可以參考cv::ImwriteFlags。

cv::ImwriteFlags是一個(gè)枚舉類型,用于指定圖像寫(xiě)入時(shí)的壓縮和質(zhì)量選項(xiàng)。它包含了以下幾個(gè)成員:

cv::IMWRITE_JPEG_QUALITY:設(shè)置JPEG圖像的質(zhì)量,范圍為0到100,數(shù)值越高質(zhì)量越好,但文件大小也會(huì)相應(yīng)增加。
cv::IMWRITE_PNG_COMPRESSION:設(shè)置PNG圖像的壓縮級(jí)別,范圍為0(無(wú)壓縮)到9(最大壓縮),數(shù)值越小壓縮率越高,但文件大小也會(huì)相應(yīng)增加。
cv::IMWRITE_PXM_BINARY:將PXM圖像保存為二進(jìn)制格式,不進(jìn)行任何壓縮。
cv::IMWRITE_PXM_FORMAT:設(shè)置PXM圖像的格式,可以是ASCII或二進(jìn)制。
cv::IMWRITE_UNCHANGED:如果圖像已經(jīng)是原始格式(如BGR),則不進(jìn)行任何轉(zhuǎn)換。
cv::IMWRITE_ANYDEPTH:如果圖像具有不同的深度(例如,一個(gè)是8位深度,另一個(gè)是16位深度),則將其視為具有相同深度的圖像。
cv::IMWRITE_ANY_COLOR:如果圖像具有不同的顏色空間(例如,一個(gè)是BGR,另一個(gè)是HSV),則將其視為具有相同顏色空間的圖像。
cv::IMWRITE_ANY_MASK:如果圖像具有不同的掩碼(例如,一個(gè)是3通道,另一個(gè)是4通道),則將其視為具有相同掩碼的圖像。
cv::IMWRITE_ANY_DEPTH:如果圖像具有不同的深度(例如,一個(gè)是8位深度,另一個(gè)是16位深度),則將其視為具有相同深度的圖像。
cv::IMWRITE_ANY_INTERPOLATION:如果圖像具有不同的插值方法(例如,一個(gè)是線性插值,另一個(gè)是雙線性插值),則將其視為具有相同插值方法的圖像。
cv::IMWRITE_ANY_BILINEAR:如果圖像具有不同的雙線性插值方法(例如,一個(gè)是普通雙線性插值,另一個(gè)是超級(jí)雙線性插值),則將其視為具有相同雙線性插值方法的圖像。
cv::IMWRITE_ANY_HALF:如果圖像具有不同的半精度浮點(diǎn)數(shù)表示方法(例如,一個(gè)是16位浮點(diǎn)數(shù),另一個(gè)是32位浮點(diǎn)數(shù)),則將其視為具有相同半精度浮點(diǎn)數(shù)表示方法的圖像。
cv::IMWRITE_ANY_VECTOR:如果圖像具有不同的向量表示方法(例如,一個(gè)是整數(shù)向量,另一個(gè)是浮點(diǎn)向量),則將其視為具有相同向量表示方法的圖像。
cv::IMWRITE_ANY_RGB:如果圖像具有不同的RGB分量順序(例如,一個(gè)是BGR,另一個(gè)是RGB),則將其視為具有相同RGB分量順序的圖像。
cv::IMWRITE_ANY_STREAM:如果圖像具有不同的數(shù)據(jù)流格式(例如,一個(gè)是內(nèi)存流,另一個(gè)是文件流),則將其視為具有相同數(shù)據(jù)流格式的圖像。

三、函數(shù)使用的場(chǎng)景

保存圖像到本地文件系統(tǒng)

使用 imwrite() 函數(shù)可以將處理后的圖像數(shù)據(jù)保存到本地文件系統(tǒng)中。例如,可以使用 imwrite() 函數(shù)將一張 JPG 或 PNG 格式的圖片保存到本地文件系統(tǒng)中:

Mat image = ...; // 處理后的圖像數(shù)據(jù)
string filename = "test.jpg"; // 要保存的文件名
imwrite(filename, image); // 將圖像數(shù)據(jù)保存到本地文件系統(tǒng)中

保存圖像時(shí)通過(guò)params設(shè)置來(lái)控制圖像質(zhì)量

下是一些使用OpenCV的imwrite函數(shù)的params參數(shù)的案例:

保存為JPEG格式的圖片,質(zhì)量為90(默認(rèn)值為75):

std::vector<int> params = {cv::IMWRITE_JPEG_QUALITY, 90};
cv::imwrite("image.jpg", image, params);

保存為PNG格式的圖片,壓縮級(jí)別為6(默認(rèn)值為-1):

std::vector<int> params = {cv::IMWRITE_PNG_COMPRESSION, 6};
cv::imwrite("image.png", image, params);

保存圖像到內(nèi)存緩沖區(qū)

有時(shí)候,需要將圖像數(shù)據(jù)保存到內(nèi)存緩沖區(qū)中進(jìn)行進(jìn)一步處理。這時(shí),可以使用 imencode() 函數(shù)將圖像數(shù)據(jù)編碼為字節(jié)流,然后再使用 imdecode() 函數(shù)將字節(jié)流解碼為 Mat 對(duì)象:

vector<uchar> buffer; // 存儲(chǔ)圖像數(shù)據(jù)的緩沖區(qū)
Mat image = ...; // 處理后的圖像數(shù)據(jù)
imencode(".jpg", image, buffer); // 將圖像數(shù)據(jù)編碼為字節(jié)流
imdecode(buffer, IMREAD_COLOR); // 將字節(jié)流解碼為 Mat 對(duì)象

四、完整代碼實(shí)例

下面是一個(gè)完整的代碼示例,演示了如何使用 imwrite() 函數(shù)將處理后的圖像數(shù)據(jù)保存到本地文件系統(tǒng)中:

#include <opencv2/opencv.hpp>
using namespace cv;

int main() {
    Mat image = imread("test.jpg"); // 讀取本地文件中的圖像數(shù)據(jù)
    if (image.empty()) {
        cout << "Failed to open image file!" << endl;
        return -1;
    }

    string filename = "output.jpg"; // 要保存的文件名
    bool result = imwrite(filename, image); // 將圖像數(shù)據(jù)保存到本地文件系統(tǒng)中
    if (result) {
        cout << "Image saved successfully!" << endl;
    } else {
        cout << "Failed to save image!" << endl;
    }

    return 0;
}

五、總結(jié)

通過(guò)本文的介紹,我們了解了 OpenCV 中的 imwrite() 函數(shù)的基本用法和應(yīng)用場(chǎng)景。該函數(shù)可以幫助我們方便地將處理后的圖像數(shù)據(jù)保存到本地文件系統(tǒng)中,或者將其保存到內(nèi)存緩沖區(qū)中進(jìn)行進(jìn)一步處理。在實(shí)際開(kāi)發(fā)中,我們可以根據(jù)具體需求靈活運(yùn)用該函數(shù),提高開(kāi)發(fā)效率。文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-764532.html

到了這里,關(guān)于[C++] opencv - imwrite函數(shù)介紹和使用場(chǎng)景的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • [C++] opencv - approxPolyDP(多邊形擬合)函數(shù)介紹和使用場(chǎng)景

    [C++] opencv - approxPolyDP(多邊形擬合)函數(shù)介紹和使用場(chǎng)景

    OpenCV中的 approxPolyDP() 函數(shù)用于對(duì)形狀進(jìn)行逼近,以減少多邊形的頂點(diǎn)數(shù),可以用于對(duì)圖像輪廓點(diǎn)進(jìn)行多邊形擬合。 函數(shù)原型如下: 其中, curve 是輸入的點(diǎn)集,類型為 InputArray, 可以是 Mat 、 vectorPoint 等; approxCurve是輸出的點(diǎn)集,類型為 OutputArray, 也是 Mat 類型; epsilon 是精

    2024年03月14日
    瀏覽(91)
  • [C++] opencv - fillPoly(填充多邊形)函數(shù)介紹和使用場(chǎng)景

    [C++] opencv - fillPoly(填充多邊形)函數(shù)介紹和使用場(chǎng)景

    fillPoly() 函數(shù)是OpenCV中用于繪制填充多邊形的函數(shù)。函數(shù)原型如下: fillPoly() 函數(shù)適用于需要繪制填充多邊形的場(chǎng)景,例如在圖像上繪制一個(gè)封閉的圖形、制作一個(gè)簡(jiǎn)單的遮罩等。 ? fillPoly() 函數(shù)是OpenCV中用于繪制填充多邊形的函數(shù)??梢杂脕?lái)繪制實(shí)心三角形,實(shí)心矩形,實(shí)

    2024年02月19日
    瀏覽(575)
  • python-opencv第二期:imwrite函數(shù)詳解

    python-opencv第二期:imwrite函數(shù)詳解

    概要:眾 嗦粥之 所周知,在如今計(jì)算機(jī)視覺(jué)( Computer Version ?short for CV)是人工智能與機(jī)器人技術(shù)發(fā)展的一個(gè)重大研究方向,而 opencv 作為一個(gè)專門為計(jì)算機(jī)視覺(jué)編程提供技術(shù)與函數(shù)支持的第三方庫(kù),自然是一個(gè)需要重點(diǎn)研究的內(nèi)容。本文就將介紹其中一個(gè)較為基礎(chǔ)的函數(shù)—

    2024年02月02日
    瀏覽(20)
  • OpenCV第 1 課 計(jì)算機(jī)視覺(jué)和 OpenCV 介紹

    OpenCV第 1 課 計(jì)算機(jī)視覺(jué)和 OpenCV 介紹

    ??我們?nèi)祟惪梢酝ㄟ^(guò)眼睛看到五顏六色的世界,是因?yàn)槿搜鄣囊曈X(jué)細(xì)胞中存在分別對(duì)紅、綠、藍(lán)敏感的 3 種細(xì)胞。其中的光感色素根據(jù)光線的不同進(jìn)行不同比例的分解,從而讓我們識(shí)別到各種顏色。 ??對(duì)人工智能而言,學(xué)會(huì)“ 看 ”也是非常關(guān)鍵的一步。那么機(jī)器人是如

    2024年01月24日
    瀏覽(22)
  • 【C++】OpenCV:計(jì)算機(jī)視覺(jué)庫(kù)介紹及C++環(huán)境配置

    【C++】OpenCV:計(jì)算機(jī)視覺(jué)庫(kù)介紹及C++環(huán)境配置

    OpenCV 是一個(gè)跨平臺(tái)計(jì)算機(jī)視覺(jué)和機(jī)器學(xué)習(xí)軟件庫(kù),可以運(yùn)行在Linux、Windows、Android和Mac OS操作系統(tǒng)上。 OpenCV 是用C++語(yǔ)言編寫(xiě)的,同時(shí)留有C ++(工程部署用)、Python(深度學(xué)習(xí)用)、Java和MATLAB(Matlab好多例子都調(diào)用的opencv)接口,為了學(xué)習(xí)(juan)和部署視覺(jué)類的應(yīng)用,記錄一

    2024年01月19日
    瀏覽(22)
  • 計(jì)算機(jī)視覺(jué)的應(yīng)用26-關(guān)于Fast-R-CNN模型的應(yīng)用場(chǎng)景,F(xiàn)ast-R-CNN模型結(jié)構(gòu)介紹

    計(jì)算機(jī)視覺(jué)的應(yīng)用26-關(guān)于Fast-R-CNN模型的應(yīng)用場(chǎng)景,F(xiàn)ast-R-CNN模型結(jié)構(gòu)介紹

    大家好,我是微學(xué)AI,今天給大家介紹一下計(jì)算機(jī)視覺(jué)的應(yīng)用26-關(guān)于Fast-R-CNN模型的應(yīng)用場(chǎng)景,F(xiàn)ast-R-CNN模型結(jié)構(gòu)介紹。Fast R-CNN是一種深度學(xué)習(xí)模型,主要用于目標(biāo)檢測(cè)任務(wù),尤其適用于圖像中物體的識(shí)別與定位。該模型在基于區(qū)域的卷積神經(jīng)網(wǎng)絡(luò)(R-CNN)系列中具有重要地位,

    2024年04月16日
    瀏覽(21)
  • 【OpenCV】關(guān)于OpenCV中imread/imwrite/imshow/cvtColor等 Api的簡(jiǎn)單描述和使用

    01、imread 官方定義 imread函數(shù)是OpenCV中的一個(gè)函數(shù),用于從文件中讀取圖像。該函數(shù)支持讀取多種圖像格式,包括BMP、JPEG、PNG、TIF等常見(jiàn)格式。 tips: 注意這里imread函數(shù)加載的是8bit 圖像 示例 02、imwrite 官方定義 imwrite函數(shù)是OpenCV中的一個(gè)函數(shù),用于將圖像寫(xiě)入文件中。該函數(shù)支

    2024年02月11日
    瀏覽(17)
  • 【計(jì)算機(jī)視覺(jué) · OpenCV】使用 OpenCV 調(diào)用手機(jī)攝像頭

    【計(jì)算機(jī)視覺(jué) · OpenCV】使用 OpenCV 調(diào)用手機(jī)攝像頭

    Droidcam 是一款可以將手機(jī)變成網(wǎng)絡(luò)攝像頭的工具,我們可以利用 Droidcam 讓 OpenCV 擁有調(diào)用手機(jī)攝像頭的能力。 2.1 安裝 DroidCam 在手機(jī)和電腦上分別安裝 DroidCam 的客戶端和服務(wù)端 下載地址:https://pan.baidu.com/s/1DrBn3P1Bx-SXa4d6oziifA?pwd=gr1o 提取碼:gr1o 2.2 測(cè)試連接狀態(tài) 手機(jī)和電腦需

    2024年02月09日
    瀏覽(31)
  • 計(jì)算機(jī)視覺(jué):使用opencv實(shí)現(xiàn)車牌識(shí)別

    計(jì)算機(jī)視覺(jué):使用opencv實(shí)現(xiàn)車牌識(shí)別

    汽車車牌識(shí)別(License Plate Recognition)是一個(gè)日常生活中的普遍應(yīng)用,特別是在智能交通系統(tǒng)中,汽車牌照識(shí)別發(fā)揮了巨大的作用。汽車牌照的自動(dòng)識(shí)別技術(shù)是把處理圖像的方法與計(jì)算機(jī)的軟件技術(shù)相連接在一起,以準(zhǔn)確識(shí)別出車牌牌照的字符為目的,將識(shí)別出的數(shù)據(jù)傳送至交

    2024年02月04日
    瀏覽(26)
  • 計(jì)算機(jī)視覺(jué):使用opencv實(shí)現(xiàn)銀行卡號(hào)識(shí)別

    計(jì)算機(jī)視覺(jué):使用opencv實(shí)現(xiàn)銀行卡號(hào)識(shí)別

    OpenCV是Open Source Computer Vision Library(開(kāi)源計(jì)算機(jī)視覺(jué)庫(kù))的簡(jiǎn)稱,由Intel公司在1999年提出建立,現(xiàn)在由Willow Garage提供運(yùn)行支持,它是一個(gè)高度開(kāi)源發(fā)行的計(jì)算機(jī)視覺(jué)庫(kù),可以實(shí)現(xiàn)Windows、Linux、Mac等多平臺(tái)的跨平臺(tái)操作。opencv是一個(gè)用于圖像處理、分析、機(jī)器視覺(jué)方面的開(kāi)源函

    2024年02月05日
    瀏覽(24)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包