Image file reading and writing#
Topics#
Detailed Description#
Classes#
Name |
Description |
|---|---|
|
Represents an animation with multiple frames. The Animation struct is designed to store and manage data for animated sequences such as those from animated formats (e.g., GIF, AVIF, APNG, WebP). It provides support for looping, background color settings, frame timing, and frame storage. View details |
|
To read multi-page images on demand. View details |
Function Documentation#
haveImageReader()#
bool cv::haveImageReader(const String & filename)
#include <opencv2/imgcodecs.hpp>
Python:
cv.haveImageReader(filename) -> retval
Checks if the specified image file can be decoded by OpenCV.
The function haveImageReader checks if OpenCV is capable of reading the specified file. This can be useful for verifying support for a given image format before attempting to load an image.
Note
The function checks the availability of image codecs that are either built into OpenCV or dynamically loaded. It does not load the image codec implementation and decode data, but uses signature check. If the file cannot be opened or the format is unsupported, the function will return false.
See also
Parameters
filename— The name of the file to be checked.
Returns
true if an image reader for the specified file is available and the file can be opened, false otherwise.
haveImageWriter()#
bool cv::haveImageWriter(const String & filename)
#include <opencv2/imgcodecs.hpp>
Python:
cv.haveImageWriter(filename) -> retval
Checks if the specified image file or specified file extension can be encoded by OpenCV.
The function haveImageWriter checks if OpenCV is capable of writing images with the specified file extension. This can be useful for verifying support for a given image format before attempting to save an image.
Note
The function checks the availability of image codecs that are either built into OpenCV or dynamically loaded. It does not check for the actual existence of the file but rather the ability to write files of the given type.
See also
Parameters
filename— The name of the file or the file extension (e.g., “.jpg”, “.png”). It is recommended to provide the file extension rather than the full file name.
Returns
true if an image writer for the specified extension is available, false otherwise.
imcount()#
size_t cv::imcount(
const String & filename,
int flags = IMREAD_COLOR_BGR )
#include <opencv2/imgcodecs.hpp>
Python:
cv.imcount(filename[, flags]) -> retval
Returns the number of images inside the given file.
The function imcount returns the number of pages in a multi-page image (e.g. TIFF), the number of frames in an animation (e.g. AVIF), and 1 otherwise. If the image cannot be decoded, 0 is returned.
Note
The default flags value was changed from cv::IMREAD_ANYCOLOR to cv::IMREAD_COLOR_BGR for unification.
Todo
when cv::IMREAD_LOAD_GDAL flag used the return value will be 0 or 1 because OpenCV’s GDAL decoder doesn’t support multi-page reading yet.
Parameters
filename— Name of file to be loaded.flags— Flag that can take values of cv::ImreadModes, default with cv::IMREAD_COLOR_BGR.
imdecode()#
Mat cv::imdecode(
InputArray buf,
int flags )
#include <opencv2/imgcodecs.hpp>
Python:
cv.imdecode(buf, flags) -> retval
Reads an image from a buffer in memory.
The function imdecode reads an image from the specified buffer in the memory. If the buffer is too short or contains invalid data, the function returns an empty matrix ( Mat::data==NULL ).
See cv::imread for the list of supported formats and flags description.
Note
In the case of color images, the decoded images will have the channels stored in B G R order.
Parameters
buf— Input array or vector of bytes.flags— Flag that can take values of cv::ImreadModes.
imdecode()#
Mat cv::imdecode(
InputArray buf,
int flags,
Mat * dst )
#include <opencv2/imgcodecs.hpp>
Python:
cv.imdecode(buf, flags) -> retval
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Parameters
buf— Input array or vector of bytes.flags— Flag that can take values of cv::ImreadModes, default with cv::IMREAD_ANYCOLOR.dst— The optional output placeholder for the decoded matrix. It can save the image reallocations when the function is called repeatedly for images of the same size. In case of decoder failure the function returns empty cv::Mat object, but does not release user-provided dst buffer.
imdecodeanimation()#
bool cv::imdecodeanimation(
InputArray buf,
Animation & animation,
int start = 0,
int count = INT16_MAX )
#include <opencv2/imgcodecs.hpp>
Python:
cv.imdecodeanimation(buf[, start[, count]]) -> retval, animation
Loads frames from an animated image buffer into an Animation structure.
The function imdecodeanimation loads frames from an animated image buffer (e.g., GIF, AVIF, APNG, WEBP) into the provided Animation struct.
Parameters
buf— A reference to an InputArray containing the image buffer.animation— A reference to an Animation structure where the loaded frames will be stored. It should be initialized before the function is called.start— The index of the first frame to load. This is optional and defaults to 0.count— The number of frames to load. This is optional and defaults to 32767.
Returns
Returns true if the buffer was successfully loaded and frames were extracted; returns false otherwise.
imdecodemulti()#
bool cv::imdecodemulti(
InputArray buf,
int flags,
std::vector< Mat > & mats,
const cv::Range & range = Range::all() )
#include <opencv2/imgcodecs.hpp>
Python:
cv.imdecodemulti(buf, flags[, mats[, range]]) -> retval, mats
Reads a multi-page image from a buffer in memory.
The function imdecodemulti reads a multi-page image from the specified buffer in the memory. If the buffer is too short or contains invalid data, the function returns false.
See cv::imreadmulti for the list of supported formats and flags description.
Note
In the case of color images, the decoded images will have the channels stored in B G R order.
Parameters
buf— Input array or vector of bytes.flags— Flag that can take values of cv::ImreadModes.mats— A vector of Mat objects holding each page, if more than one.range— A continuous selection of pages.
imdecodeWithMetadata()#
Mat cv::imdecodeWithMetadata(
InputArray buf,
std::vector< int > & metadataTypes,
OutputArrayOfArrays metadata,
int flags )
#include <opencv2/imgcodecs.hpp>
Python:
cv.imdecodeWithMetadata(buf, flags[, metadata]) -> retval, metadataTypes, metadata
Reads an image from a memory buffer and extracts associated metadata.
This function decodes an image from the specified memory buffer. If the buffer is too short or contains invalid data, the function returns an empty matrix ( Mat::data==NULL ).
See cv::imread for the list of supported formats and flags description.
Note
In the case of color images, the decoded images will have the channels stored in B G R order.
Parameters
buf— Input array or vector of bytes containing the encoded image data.metadataTypes— Output vector with types of metadata chucks returned in metadata, see cv::ImageMetadataTypemetadata— Output vector of vectors or vector of matrices to store the retrieved metadataflags— Flag that can take values of cv::ImreadModes.
Returns
The decoded image as a cv::Mat object. If decoding fails, the function returns an empty matrix.
imencode()#
bool cv::imencode(
const String & ext,
InputArray img,
std::vector< uchar > & buf,
const std::vector< int > & params = std::vector< int >() )
#include <opencv2/imgcodecs.hpp>
Python:
cv.imencode(ext, img[, params]) -> retval, buf
Encodes an image into a memory buffer.
The function imencode compresses the image and stores it in the memory buffer that is resized to fit the result. See cv::imwrite for the list of supported formats and flags description.
Parameters
ext— File extension that defines the output format. Must include a leading period.img— Image to be compressed.buf— Output buffer resized to fit the compressed image.params— Format-specific parameters. See cv::imwrite and cv::ImwriteFlags.
imencodeanimation()#
bool cv::imencodeanimation(
const String & ext,
const Animation & animation,
std::vector< uchar > & buf,
const std::vector< int > & params = std::vector< int >() )
#include <opencv2/imgcodecs.hpp>
Python:
cv.imencodeanimation(ext, animation[, params]) -> retval, buf
Encodes an Animation to a memory buffer.
The function imencodeanimation encodes the provided Animation data into a memory buffer in an animated format. Supported formats depend on the implementation and may include formats like GIF, AVIF, APNG, or WEBP.
Parameters
ext— The file extension that determines the format of the encoded data.animation— A constant reference to an Animation struct containing the frames and metadata to be encoded.buf— A reference to a vector of unsigned chars where the encoded data will be stored.params— Optional format-specific parameters encoded as pairs (paramId_1, paramValue_1, paramId_2, paramValue_2, …). These parameters are used to specify additional options for the encoding process. Refer tocv::ImwriteFlagsfor details on possible parameters.
Returns
Returns true if the animation was successfully encoded; returns false otherwise.
imencodemulti()#
bool cv::imencodemulti(
const String & ext,
InputArrayOfArrays imgs,
std::vector< uchar > & buf,
const std::vector< int > & params = std::vector< int >() )
#include <opencv2/imgcodecs.hpp>
Python:
cv.imencodemulti(ext, imgs[, params]) -> retval, buf
Encodes array of images into a memory buffer.
The function is analog to cv::imencode for in-memory multi-page image compression. See cv::imwrite for the list of supported formats and flags description.
Parameters
ext— File extension that defines the output format. Must include a leading period.imgs— Vector of images to be written.buf— Output buffer resized to fit the compressed data.params— Format-specific parameters. See cv::imwrite and cv::ImwriteFlags.
imencodeWithMetadata()#
bool cv::imencodeWithMetadata(
const String & ext,
InputArray img,
const std::vector< int > & metadataTypes,
InputArrayOfArrays metadata,
std::vector< uchar > & buf,
const std::vector< int > & params = std::vector< int >() )
#include <opencv2/imgcodecs.hpp>
Python:
cv.imencodeWithMetadata(ext, img, metadataTypes, metadata[, params]) -> retval, buf
Encodes an image into a memory buffer.
The function imencode compresses the image and stores it in the memory buffer that is resized to fit the result. See cv::imwrite for the list of supported formats and flags description.
Parameters
ext— File extension that defines the output format. Must include a leading period.img— Image to be compressed.metadataTypes— Vector with types of metadata chucks stored in metadata to write, see ImageMetadataType.metadata— Vector of vectors or vector of matrices with chunks of metadata to store into the filebuf— Output buffer resized to fit the compressed image.params— Format-specific parameters. See cv::imwrite and cv::ImwriteFlags.
imread()#
Mat cv::imread(
const String & filename,
int flags = IMREAD_COLOR_BGR )
#include <opencv2/imgcodecs.hpp>
Python:
cv.imread(filename[, flags]) -> retval
cv.imread(filename[, dst[, flags]]) -> dst
Loads an image from a file.
The imread function loads an image from the specified file and returns OpenCV matrix. If the image cannot be read (because of a missing file, improper permissions, or unsupported/invalid format), the function returns an empty matrix.
Currently, the following file formats are supported:
Windows bitmaps - *.bmp, *.dib (always supported)
GIF files - *.gif (always supported)
JPEG files - *.jpeg, *.jpg, *.jpe (see the Note section)
JPEG 2000 files - *.jp2 (see the Note section)
Portable Network Graphics - *.png (see the Note section)
WebP - *.webp (see the Note section)
AVIF - *.avif (see the Note section)
Portable image format - *.pbm, *.pgm, *.ppm, *.pxm, *.pnm (always supported)
PFM files - *.pfm (see the Note section)
Sun rasters - *.sr, *.ras (always supported)
TIFF files - *.tiff, *.tif (see the Note section)
OpenEXR Image files - *.exr (see the Note section)
Radiance HDR - *.hdr, *.pic (always supported)
Raster and Vector geospatial data supported by GDAL (see the Note section)
Note
The function determines the type of an image by its content, not by the file extension.
In the case of color images, the decoded images will have the channels stored in B G R order.
When using IMREAD_GRAYSCALE, the codec’s internal grayscale conversion will be used, if available. Results may differ from the output of cvtColor().
On Microsoft Windows* and Mac OS*, the codecs shipped with OpenCV (libjpeg, libpng, libtiff, and libjasper) are used by default. So, OpenCV can always read JPEGs, PNGs, and TIFFs. On Mac OS, there is also an option to use native Mac OS image readers. However, beware that currently these native image loaders give images with different pixel values because of the color management embedded into Mac OS.
On Linux*, BSD flavors, and other Unix-like open-source operating systems, OpenCV looks for codecs supplied with the OS. Ensure the relevant packages are installed (including development files, such as “libjpeg-dev” in Debian* and Ubuntu*) to get codec support, or turn on the OPENCV_BUILD_3RDPARTY_LIBS flag in CMake.
If the WITH_GDAL flag is set to true in CMake and IMREAD_LOAD_GDAL is used to load the image, the GDAL driver will be used to decode the image, supporting Raster and Vector formats.
If EXIF information is embedded in the image file, the EXIF orientation will be taken into account, and thus the image will be rotated accordingly unless the flags IMREAD_IGNORE_ORIENTATION or IMREAD_UNCHANGED are passed.
Use the IMREAD_UNCHANGED flag to preserve the floating-point values from PFM images.
By default, the number of pixels must be less than 2^30. This limit can be changed by setting the environment variable
OPENCV_IO_MAX_IMAGE_PIXELS. See tutorial_env_reference.
Parameters
filename— Name of the file to be loaded.flags— Flag that can take values of cv::ImreadModes, default with cv::IMREAD_COLOR_BGR.
imread()#
void cv::imread(
const String & filename,
OutputArray dst,
int flags = IMREAD_COLOR_BGR )
#include <opencv2/imgcodecs.hpp>
Python:
cv.imread(filename[, flags]) -> retval
cv.imread(filename[, dst[, flags]]) -> dst
Loads an image from a file.
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts and the return value.
Note
The image passing through the img parameter can be pre-allocated. The memory is reused if the shape and the type match with the load image.
Parameters
filename— Name of file to be loaded.dst— object in which the image will be loaded.flags— Flag that can take values of cv::ImreadModes, default with cv::IMREAD_COLOR_BGR.
imreadanimation()#
bool cv::imreadanimation(
const String & filename,
Animation & animation,
int start = 0,
int count = INT16_MAX )
#include <opencv2/imgcodecs.hpp>
Python:
cv.imreadanimation(filename[, start[, count]]) -> retval, animation
Loads frames from an animated image file into an Animation structure.
The function imreadanimation loads frames from an animated image file (e.g., GIF, AVIF, APNG, WEBP) into the provided Animation struct.
Parameters
filename— A string containing the path to the file.animation— A reference to an Animation structure where the loaded frames will be stored. It should be initialized before the function is called.start— The index of the first frame to load. This is optional and defaults to 0.count— The number of frames to load. This is optional and defaults to 32767.
Returns
Returns true if the file was successfully loaded and frames were extracted; returns false otherwise.
imreadmulti()#
bool cv::imreadmulti(
const String & filename,
std::vector< Mat > & mats,
int flags = IMREAD_COLOR_BGR )
#include <opencv2/imgcodecs.hpp>
Python:
cv.imreadmulti(filename[, mats[, flags]]) -> retval, mats
cv.imreadmulti(filename, start, count[, mats[, flags]]) -> retval, mats
Loads a multi-page image from a file.
The function imreadmulti loads a multi-page image from the specified file into a vector of Mat objects.
Note
The default flags value was changed from cv::IMREAD_ANYCOLOR to cv::IMREAD_COLOR_BGR for unification.
See also
Parameters
filename— Name of file to be loaded.mats— A vector of Mat objects holding each page.flags— Flag that can take values of cv::ImreadModes, default with cv::IMREAD_COLOR_BGR.
imreadmulti()#
bool cv::imreadmulti(
const String & filename,
std::vector< Mat > & mats,
int start,
int count,
int flags = IMREAD_ANYCOLOR )
#include <opencv2/imgcodecs.hpp>
Python:
cv.imreadmulti(filename[, mats[, flags]]) -> retval, mats
cv.imreadmulti(filename, start, count[, mats[, flags]]) -> retval, mats
Loads images of a multi-page image from a file.
The function imreadmulti loads a specified range from a multi-page image from the specified file into a vector of Mat objects.
See also
Parameters
filename— Name of file to be loaded.mats— A vector of Mat objects holding each page.start— Start index of the image to loadcount— Count number of images to loadflags— Flag that can take values of cv::ImreadModes, default with cv::IMREAD_ANYCOLOR.
imreadWithMetadata()#
Mat cv::imreadWithMetadata(
const String & filename,
std::vector< int > & metadataTypes,
OutputArrayOfArrays metadata,
int flags )
#include <opencv2/imgcodecs.hpp>
Python:
cv.imreadWithMetadata(filename, flags[, metadata]) -> retval, metadataTypes, metadata
Reads an image from a file along with associated metadata.
This function behaves similarly to cv::imread(), loading an image from the specified file. In addition to the image pixel data, it also attempts to extract any available metadata embedded in the file (such as EXIF, XMP, etc.), depending on file format support.
Note
In the case of color images, the decoded images will have the channels stored in B G R order.
Parameters
filename— Name of the file to be loaded.metadataTypes— Output vector with types of metadata chunks returned in metadata, see ImageMetadataType.metadata— Output vector of vectors or vector of matrices to store the retrieved metadata.flags— Flag that can take values of cv::ImreadModes.
Returns
The loaded image as a cv::Mat object. If the image cannot be read, the function returns an empty matrix.
imwrite()#
bool cv::imwrite(
const String & filename,
InputArray img,
const std::vector< int > & params = std::vector< int >() )
#include <opencv2/imgcodecs.hpp>
Python:
cv.imwrite(filename, img[, params]) -> retval
Saves an image to a specified file.
The function imwrite saves the image to the specified file. The image format is chosen based on the filename extension (see cv::imread for the list of extensions). In general, only 8-bit unsigned (CV_8U) single-channel or 3-channel (with ‘BGR’ channel order) images can be saved using this function, with these exceptions:
With BMP encoder, 8-bit unsigned (CV_8U) images can be saved.
BMP images with an alpha channel can be saved using this function. To achieve this, create an 8-bit 4-channel (CV_8UC4) BGRA image, ensuring the alpha channel is the last component. Fully transparent pixels should have an alpha value of 0, while fully opaque pixels should have an alpha value of 255. OpenCV v4.13.0 or later use BI_BITFIELDS compression as default. See IMWRITE_BMP_COMPRESSION.
With OpenEXR encoder, only 32-bit float (CV_32F) images can be saved. More than 4 channels can be saved. (imread can load it then.)
8-bit unsigned (CV_8U) images are not supported.
With Radiance HDR encoder, non 64-bit float (CV_64F) images can be saved.
All images will be converted to 32-bit float (CV_32F).
With JPEG 2000 encoder, 8-bit unsigned (CV_8U) and 16-bit unsigned (CV_16U) images can be saved.
With JPEG XL encoder, 8-bit unsigned (CV_8U), 16-bit unsigned (CV_16U) and 32-bit float(CV_32F) images can be saved.
JPEG XL images with an alpha channel can be saved using this function. To achieve this, create an 8-bit 4-channel (CV_8UC4) / 16-bit 4-channel (CV_16UC4) / 32-bit float 4-channel (CV_32FC4) BGRA image, ensuring the alpha channel is the last component. Fully transparent pixels should have an alpha value of 0, while fully opaque pixels should have an alpha value of 255/65535/1.0.
With PAM encoder, 8-bit unsigned (CV_8U) and 16-bit unsigned (CV_16U) images can be saved.
With PNG encoder, 8-bit unsigned (CV_8U) and 16-bit unsigned (CV_16U) images can be saved.
PNG images with an alpha channel can be saved using this function. To achieve this, create an 8-bit 4-channel (CV_8UC4) / 16-bit 4-channel (CV_16UC4) BGRA image, ensuring the alpha channel is the last component. Fully transparent pixels should have an alpha value of 0, while fully opaque pixels should have an alpha value of 255/65535(see the code sample below).
With PGM/PPM encoder, 8-bit unsigned (CV_8U) and 16-bit unsigned (CV_16U) images can be saved.
With TIFF encoder, 8-bit unsigned (CV_8U), 8-bit signed (CV_8S), 16-bit unsigned (CV_16U), 16-bit signed (CV_16S), 32-bit unsigned (CV_32U), 32-bit signed (CV_32S), 64-bit unsigned (CV_64U), 64-bit signed (CV_64S), 32-bit float (CV_32F) and 64-bit float (CV_64F) images can be saved.
Multiple images (vector of Mat) can be saved in TIFF format (see the code sample below).
32-bit float 3-channel (CV_32FC3) TIFF images can be saved using the LogLuv high dynamic range encoding (4 bytes per pixel) through TIFF_COMPRESSION_SGILOG or (3 bytes per pixel) through TIFF_COMPRESSION_SGILOG24.
Other compression schemes (LZW…) are supported as well for 32F depth, but the efficiency might not be very good for the floating-point representation bit patterns.
With GIF encoder, 8-bit unsigned (CV_8U) images can be saved.
GIF images with an alpha channel can be saved using this function. To achieve this, create an 8-bit 4-channel (CV_8UC4) BGRA image, ensuring the alpha channel is the last component. Fully transparent pixels should have an alpha value of 0, while fully opaque pixels should have an alpha value of 255.
8-bit single-channel images (CV_8UC1) are not supported due to GIF’s limitation to indexed color formats.
With AVIF encoder, 8-bit unsigned (CV_8U) and 16-bit unsigned (CV_16U) images can be saved.
CV_16U images can be saved as only 10-bit or 12-bit (not 16-bit). See IMWRITE_AVIF_DEPTH.
AVIF images with an alpha channel can be saved using this function. To achieve this, create an 8-bit 4-channel (CV_8UC4) / 16-bit 4-channel (CV_16UC4) BGRA image, ensuring the alpha channel is the last component. Fully transparent pixels should have an alpha value of 0, while fully opaque pixels should have an alpha value of 255 (8-bit) / 1023 (10-bit) / 4095 (12-bit) (see the code sample below).
If the image format is not supported, the image will be converted to 8-bit unsigned (CV_8U) and saved that way.
If the format, depth or channel order is different, use Mat::convertTo and cv::cvtColor to convert it before saving. Or, use the universal FileStorage I/O functions to save the image to XML or YAML format.
The sample below shows how to create a BGRA image, how to set custom compression parameters and save it to a PNG file. It also demonstrates how to save multiple images in a TIFF file:
#include <opencv2/imgcodecs.hpp>
using namespace cv;
using namespace std;
static void paintAlphaMat(Mat &mat)
{
CV_Assert(mat.channels() == 4);
for (int i = 0; i < mat.rows; ++i)
{
for (int j = 0; j < mat.cols; ++j)
{
Vec4b& bgra = mat.at<Vec4b>(i, j);
bgra[0] = UCHAR_MAX; // Blue
bgra[1] = saturate_cast<uchar>((float (mat.cols - j)) / ((float)mat.cols) * UCHAR_MAX); // Green
bgra[2] = saturate_cast<uchar>((float (mat.rows - i)) / ((float)mat.rows) * UCHAR_MAX); // Red
bgra[3] = saturate_cast<uchar>(0.5 * (bgra[1] + bgra[2])); // Alpha
}
}
}
int main()
{
Mat mat(480, 640, CV_8UC4); // Create a matrix with alpha channel
paintAlphaMat(mat);
vector<int> compression_params;
compression_params.push_back(IMWRITE_PNG_COMPRESSION);
compression_params.push_back(9);
bool result = false;
try
{
result = imwrite("alpha.png", mat, compression_params);
}
catch (const cv::Exception& ex)
{
fprintf(stderr, "Exception converting image to PNG format: %s\n", ex.what());
}
if (result)
printf("Saved PNG file with alpha data.\n");
else
printf("ERROR: Can't save PNG file.\n");
vector<Mat> imgs;
imgs.push_back(mat);
imgs.push_back(~mat);
imgs.push_back(mat(Rect(0, 0, mat.cols / 2, mat.rows / 2)));
imwrite("test.tiff", imgs);
printf("Multiple files saved in test.tiff\n");
return result ? 0 : 1;
}
Parameters
filename— Name of the file.params— Format-specific parameters encoded as pairs (paramId_1, paramValue_1, paramId_2, paramValue_2, … .) see cv::ImwriteFlags
Returns
true if the image is successfully written to the specified file; false otherwise.
imwriteanimation()#
bool cv::imwriteanimation(
const String & filename,
const Animation & animation,
const std::vector< int > & params = std::vector< int >() )
#include <opencv2/imgcodecs.hpp>
Python:
cv.imwriteanimation(filename, animation[, params]) -> retval
Saves an Animation to a specified file.
The function imwriteanimation saves the provided Animation data to the specified file in an animated format. Supported formats depend on the implementation and may include formats like GIF, AVIF, APNG, or WEBP.
Parameters
filename— The name of the file where the animation will be saved. The file extension determines the format.animation— A constant reference to an Animation struct containing the frames and metadata to be saved.params— Optional format-specific parameters encoded as pairs (paramId_1, paramValue_1, paramId_2, paramValue_2, …). These parameters are used to specify additional options for the encoding process. Refer tocv::ImwriteFlagsfor details on possible parameters.
Returns
Returns true if the animation was successfully saved; returns false otherwise.
imwritemulti()#
static bool cv::imwritemulti(
const String & filename,
InputArrayOfArrays img,
const std::vector< int > & params = std::vector< int >() )
#include <opencv2/imgcodecs.hpp>
Python:
cv.imwritemulti(filename, img[, params]) -> retval
multi-image overload for bindings
Here is the call graph for this function:
imwriteWithMetadata()#
bool cv::imwriteWithMetadata(
const String & filename,
InputArray img,
const std::vector< int > & metadataTypes,
InputArrayOfArrays & metadata,
const std::vector< int > & params = std::vector< int >() )
#include <opencv2/imgcodecs.hpp>
Python:
cv.imwriteWithMetadata(filename, img, metadataTypes, metadata[, params]) -> retval
Saves an image to a specified file with metadata.
The function imwriteWithMetadata saves the image to the specified file. It does the same thing as imwrite, but additionally writes metadata if the corresponding format supports it.
Parameters
filename— Name of the file. As with imwrite, image format is determined by the file extension.metadataTypes— Vector with types of metadata chucks stored in metadata to write, see ImageMetadataType.metadata— Vector of vectors or vector of matrices with chunks of metadata to store into the fileparams— Format-specific parameters encoded as pairs (paramId_1, paramValue_1, paramId_2, paramValue_2, … .) see cv::ImwriteFlags