OpenCV:imwrite函數(shù)保存圖片問(wèn)題
imwrite函數(shù)功能
用于將圖像保存到指定的文件,可以為各種格式的圖像。
函數(shù)原型
bool cv::imwrite(const String & filename, InputArray img, const std::vector<int> & params = std::vector<int>()? )??
函數(shù)參數(shù)
filename:需要保存圖像的文件名,要保存圖片為哪種格式,就帶什么后綴。img:要保存的圖像。params:表示為特定格式保存的參數(shù)編碼。
注意:
imwrite函數(shù)是基于文件擴(kuò)展名選擇圖像的格式。通常,使用此功能只能保存8位單通道或3通道(帶有BGR通道順序)圖像,但有以下例外:
- 對(duì)于PNG,JPEG2000和TIFF格式,可以保存16位無(wú)符號(hào)(CV_16U)圖像。
- 32位浮點(diǎn)(CV_32F)圖像可以保存為PFM,TIFF,OpenEXR和Radiance HDR格式; 使用LogLuv高動(dòng)態(tài)范圍編碼(每像素4個(gè)字節(jié))保存3通道(CV_32FC3)TIFF圖像
- 可以使用此功能保存帶有Alpha通道的PNG圖像。為此,創(chuàng)建8位(或16位)4通道圖像BGRA,其中alpha通道最后。完全透明的像素應(yīng)該將alpha設(shè)置為0,完全不透明的像素應(yīng)該將alpha設(shè)置為255/65535。
如果格式,深度或通道順序不同,請(qǐng)?jiān)诒4嬷笆褂?a rel="external nofollow" target="_blank">Mat :: convertTo和cv :: cvtColor進(jìn)行轉(zhuǎn)換?;蛘?,使用通用FileStorage I / O函數(shù)將圖像保存為XML或YAML格式。
編碼參數(shù)
| IMWRITE_JPEG_QUALITY Python:cv.IMWRITE_JPEG_QUALITY | 對(duì)于JPEG,它可以是從0到100的質(zhì)量(越高越好)。默認(rèn)值為95。 |
| IMWRITE_JPEG_PROGRESSIVE Python:cv.IMWRITE_JPEG_PROGRESSIVE | 啟用JPEG功能,0或1,默認(rèn)為False。 |
| IMWRITE_JPEG_OPTIMIZE Python:cv.IMWRITE_JPEG_OPTIMIZE | 啟用JPEG功能,0或1,默認(rèn)為False。 |
| IMWRITE_JPEG_RST_INTERVAL Python:cv.IMWRITE_JPEG_RST_INTERVAL | JPEG重啟間隔,0 - 65535,默認(rèn)為0 - 無(wú)重啟。 |
| IMWRITE_JPEG_LUMA_QUALITY Python:cv.IMWRITE_JPEG_LUMA_QUALITY | 單獨(dú)的亮度質(zhì)量等級(jí),0 - 100,默認(rèn)為0 - 不使用。 |
| IMWRITE_JPEG_CHROMA_QUALITY Python:cv.IMWRITE_JPEG_CHROMA_QUALITY | 單獨(dú)的色度質(zhì)量等級(jí),0 - 100,默認(rèn)為0 - 不使用。 |
| IMWRITE_PNG_COMPRESSION Python:cv.IMWRITE_PNG_COMPRESSION | 對(duì)于PNG,它可以是從0到9的壓縮級(jí)別。值越高意味著更小的尺寸和更長(zhǎng)的壓縮時(shí)間。如果指定,則策略更改為IMWRITE_PNG_STRATEGY_DEFAULT(Z_DEFAULT_STRATEGY)。默認(rèn)值為1(最佳速度設(shè)置)。 |
| IMWRITE_PNG_STRATEGY Python:cv.IMWRITE_PNG_STRATEGY | 其中一個(gè)品種:: ImwritePNGFlags,默認(rèn)為IMWRITE_PNG_STRATEGY_RLE。 |
| IMWRITE_PNG_BILEVEL Python:cv.IMWRITE_PNG_BILEVEL | 二進(jìn)制級(jí)別PNG,0或1,默認(rèn)為0。 |
| IMWRITE_PXM_BINARY Python:cv.IMWRITE_PXM_BINARY | 對(duì)于PPM,PGM或PBM,它可以是二進(jìn)制格式標(biāo)志,0或1.默認(rèn)值為1。 |
| IMWRITE_EXR_TYPE Python:cv.IMWRITE_EXR_TYPE | |
| IMWRITE_WEBP_QUALITY Python:cv.IMWRITE_WEBP_QUALITY | 覆蓋EXR存儲(chǔ)類型(默認(rèn)為FLOAT(FP32)) 對(duì)于WEBP,它可以是1到100的質(zhì)量(越高越好)。默認(rèn)情況下(不帶任何參數(shù)),如果質(zhì)量高于100,則使用無(wú)損壓縮。 |
| IMWRITE_PAM_TUPLETYPE Python:cv.IMWRITE_PAM_TUPLETYPE | 對(duì)于PAM,將TUPLETYPE字段設(shè)置為為格式定義的相應(yīng)字符串值。 |
| IMWRITE_TIFF_RESUNIT Python:cv.IMWRITE_TIFF_RESUNIT | 對(duì)于TIFF,用于指定要設(shè)置的DPI分辨率單位; 請(qǐng)參閱libtiff文檔以獲取有效值。 |
| IMWRITE_TIFF_XDPI Python:cv.IMWRITE_TIFF_XDPI | 對(duì)于TIFF,用于指定X方向DPI。 |
| IMWRITE_TIFF_YDPI Python:cv.IMWRITE_TIFF_YDPI | 對(duì)于TIFF,用于指定Y方向DPI。 |
| IMWRITE_TIFF_COMPRESSION Python:cv.IMWRITE_TIFF_COMPRESSION | 對(duì)于TIFF,用于指定圖像壓縮方案。請(qǐng)參閱libtiff以獲取與壓縮格式對(duì)應(yīng)的整數(shù)常量。注意,對(duì)于深度為CV_32F的圖像,僅使用libtiff的SGILOG壓縮方案。對(duì)于其他支持的深度,可以通過(guò)此標(biāo)志指定壓縮方案; LZW壓縮是默認(rèn)值。 |
| IMWRITE_JPEG2000_COMPRESSION_X1000 Python:cv.IMWRITE_JPEG2000_COMPRESSION_X1000 | 對(duì)于JPEG2000,用于指定目標(biāo)壓縮率(乘以1000)。該值可以是0到1000.默認(rèn)值是1000。 |
示例代碼
#include <opencv2/opencv.hpp>
#include <iostream>
int main()
{
cv::Mat srcImage;
//加載圖像
srcImage = cv::imread("image.jpg",1);
if (srcImage.empty())
{
std::cout << "圖像加載失??!" << std::endl;
return -1;
}
cv::imshow("主窗口", srcImage);
//保存圖像到當(dāng)前項(xiàng)目
cv::imwrite("save.jpg", srcImage);
cv::waitKey(0);
//銷毀所有窗口
cv::destroyAllWindows();
return 0;
}代碼結(jié)果


以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Django+Bootstrap實(shí)現(xiàn)計(jì)算器的示例代碼
本文主要介紹了Django+Bootstrap實(shí)現(xiàn)計(jì)算器的示例代碼,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-11-11
python創(chuàng)建exe文件的實(shí)現(xiàn)步驟
本文主要介紹了python創(chuàng)建exe文件的實(shí)現(xiàn)步驟,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-09-09
Python?for循環(huán)詳細(xì)講解(附代碼實(shí)例)
這篇文章主要給大家介紹了關(guān)于Python?for循環(huán)詳細(xì)講解的相關(guān)資料,在Python中,for循環(huán)是一種常用的控制結(jié)構(gòu),用于遍歷序列(如列表、元組、字符串等)中的元素,需要的朋友可以參考下2024-03-03
50行Python代碼實(shí)現(xiàn)人臉檢測(cè)功能
現(xiàn)在的人臉識(shí)別技術(shù)已經(jīng)得到了非常廣泛的應(yīng)用,支付領(lǐng)域、身份驗(yàn)證、美顏相機(jī)里都有它的應(yīng)用。下面小編給大家?guī)?lái)了基于50行Python代碼實(shí)現(xiàn)人臉檢測(cè)功能,一起看看吧2018-01-01
windows+vscode安裝paddleOCR運(yùn)行環(huán)境的步驟
這篇文章主要介紹了windows+vscode安裝paddleOCR運(yùn)行環(huán)境,本文通過(guò)圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11
Python Tornado框架輕松寫(xiě)一個(gè)Web應(yīng)用的全過(guò)程
Tornado全稱Tornado Web Server,是一個(gè)用Python語(yǔ)言寫(xiě)成的Web服務(wù)器兼Web應(yīng)用框架,Tornado走的是少而精的方向,注重的是性能優(yōu)越,它最出名的是異步非阻塞的服務(wù)器方式,這篇文章主要給大家介紹了關(guān)于Python Tornado框架輕松寫(xiě)一個(gè)Web應(yīng)用的相關(guān)資料,需要的朋友可以參考下2021-08-08

