OpenCV Lesson 1: Basic I/O scripts
I decided to document what I learn about OpenCV as my days going.
This is day 1: input/output scripts.
Let's dive right into it.
We have input fuction: cv2.imread(filename, flags)
and output function: cv2.imwrite(filename, img, params)
These function is so basic and simple as Hello world!
for OpenCV.
So the difference between opencv 2 and opencv 3 is that in opencv 3x, they name flags in a manner that relate to the function to which it refers to. So in cv2.imread()
, flags
would be something like cv2.IMREAD_
For example: we need to read an image directly to grayscale in the main folder of the project (which is the same folder of the running code):
import cv2
image_grayscale = cv2.imread("sample.jpg", cv2.IMREAD_GRAYSCALE)
And this is the table about all the flags for cv2.imread()
in opencv 3.3:
Flags | Content |
---|---|
IMREAD_UNCHANGED | If set, return the loaded image as is (with alpha channel, otherwise it gets cropped). |
IMREAD_GRAYSCALE | If set, always convert image to the single channel grayscale image. |
IMREAD_COLOR | If set, always convert image to the 3 channel BGR color image. |
IMREAD_ANYDEPTH | If set, return 16-bit/32-bit image when the input has the corresponding depth, otherwise convert it to 8-bit. |
IMREAD_ANYCOLOR | If set, the image is read in any possible color format. |
IMREAD_LOAD_GDAL | If set, use the gdal driver for loading the image. |
IMREAD_REDUCED_GRAYSCALE_2 | If set, always convert image to the single channel grayscale image and the image size reduced 1/2 |
IMREAD_REDUCED_COLOR_2 | If set, always convert image to the 3 channel BGR color image and the image size reduced 1/2. |
IMREAD_REDUCED_GRAYSCALE_4 | If set, always convert image to the single channel grayscale image and the image size reduced 1/4. |
IMREAD_REDUCED_COLOR_4 | If set, always convert image to the 3 channel BGR color image and the image size reduced 1/4. |
IMREAD_REDUCED_GRAYSCALE_8 | If set, always convert image to the single channel grayscale image and the image size reduced 1/8. |
IMREAD_REDUCED_COLOR_8 | If set, always convert image to the 3 channel BGR color image and the image size reduced 1/8. |
IMREAD_IGNORE_ORIENTATION | If set, do not rotate the image according to EXIF's orientation flag. |
And this table is for cv2.imwrite()
params:
Params | Content |
---|---|
IMWRITE_JPEG_QUALITY | For JPEG, it can be a quality from 0 to 100 (the higher is the better). Default value is 95. |
IMWRITE_JPEG_PROGRESSIVE | Enable JPEG features, 0 or 1, default is False. |
IMWRITE_JPEG_OPTIMIZE | Enable JPEG features, 0 or 1, default is False. |
IMWRITE_JPEG_RST_INTERVAL | JPEG restart interval, 0 - 65535, default is 0 - no restart. |
IMWRITE_JPEG_LUMA_QUALITY | Separate luma quality level, 0 - 100, default is 0 - don't use. |
IMWRITE_JPEG_CHROMA_QUALITY | Separate chroma quality level, 0 - 100, default is 0 - don't use. |
IMWRITE_PNG_COMPRESSION | For PNG, it can be the compression level from 0 to 9. A higher value means a smaller size and longer compression time. If specified, strategy is changed to IMWRITE_PNG_STRATEGY_DEFAULT (Z_DEFAULT_STRATEGY). Default value is 1 (best speed setting). |
IMWRITE_PNG_STRATEGY | One of cv::ImwritePNGFlags, default is IMWRITE_PNG_STRATEGY_RLE. |
IMWRITE_PNG_BILEVEL | Binary level PNG, 0 or 1, default is 0. |
IMWRITE_PXM_BINARY | For PPM, PGM, or PBM, it can be a binary format flag, 0 or 1. Default value is 1. |
IMWRITE_WEBP_QUALITY | For WEBP, it can be a quality from 1 to 100 (the higher is the better). By default (without any parameter) and for quality above 100 the lossless compression is used. |
IMWRITE_PAM_TUPLETYPE | For PAM, sets the TUPLETYPE field to the corresponding string value that is defined for the format. |
Source: opencv 3.3.0 documents
Hi! I am a robot. I just upvoted you! I found similar content that readers might be interested in:
https://docs.opencv.org/master/d4/da8/group__imgcodecs.html