opencv 保存图片操作:sprintf连续保存文件命名的使用

1. cv::Mat 文件转换到 IplImage

cv::Mat ImageQr;

IplImage qimage =IplImage(ImageQr);

2. 文件保存

cvSaveImage(”./result.jpg“, &qimage);

~~~~~~~~~~~~~~~~~

int cvSaveImage( const char* filename, const CvArr* image );

filename

文件名。

image

要保存的图像。

函数cvSaveImage保存图像到指定文件。图像格式的的选择依赖于filename的扩展名,请参考cvLoadImage。只有8位单通道或者3通道(通道顺序为’BGR’ )可以使用这个函数保存。如果格式,,深度或者通道不符合要求,请先用cvCvtScale 和cvCvtColor转换;或者使用通用的cvSave保存图像为XML或者YAML格式。

对单通道的图像进行保存,也有可能得到新的3通道图像。例如:cvSaveImage("r.bmp",r);把程序中命名为r的单通道图像存储名字为r的bmp格式下图像,得到新图像为3通道。

3.cv::Mat,cvMat和IplImage的相互转换方法

参考:

CvMat、Mat、IplImage之间的转换详解及实例

参考:

4. 一幅图像不同方法处理后连续保存图片。

方法一:

tryCount++; string ImageBase =”./data/output/qr“;

string ImageAddres = ImageBase + int2str(tryCount)+".png"; IplImage qimage =IplImage(ImageQr); cvSaveImage(ImageAddres.data(), &qimage); //注意 ImageAddres.data()

cvShowImage("mywindow",frame);

方法二: sprintf

参考自:Opencv中将视频保存为连续的图片和连续的图片保存为视频

tryCount++; char ImageName[13]; sprintf(ImageName, "%s%d%s", "./data/output/qr", tryCount, ".jpg");//保存的图片名 IplImage qimage =IplImage(ImageQr); cvSaveImage(ImageName, &qimage); cvShowImage("mywindow",frame);

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

sprintf功能

把格式化的数据写入某个字符串缓冲区。

头文件

stdio.h

原型

int sprintf( char *buffer, const char *format, [ argument] … );

参数列表

buffer:char型指针,指向将要写入的字符串的缓冲区。

format:格式化字符串。

[argument]…:可选参数,可以是任何类型的数据。

返回值:字符串长度(strlen)

相关函数

int sprintf_s(char *buffer,size_t sizeOfBuffer,const char *format, [argument] … );

int _sprintf_s_l(char *buffer,size_t sizeOfBuffer,const char *format,locale_t locale ,[argument] … );

int swprintf_s(wchar_t *buffer,size_t sizeOfBuffer,constwchar_t *format ,[argument]…);

int _swprintf_s_l(wchar_t *buffer,size_t sizeOfBuffer,const wchar_t *format,locale_t locale ,[argument]…);

template <size_t size>

int sprintf_s(char (&buffer)[size],const char *format, [argument] … ); //仅存在于C++

template <size_t size>

int swprintf_s(wchar_t (&buffer)[size],const wchar_t *format ,[argument]…); //仅存在于C++

飞机一阵抖动,我终于说出了最后一句再见。

opencv 保存图片操作:sprintf连续保存文件命名的使用

相关文章:

你感兴趣的文章:

标签云: