convertTo
Usage
Converts the data type of an image to another with optional scaling. You can adjust the value range of the image by specifying the target data type and scaling factor.
Interface
1 | void Mat::convertTo(OutputArray dst, int type_, double alpha, double beta) const; |
Parameters
Parameter |
Description |
Value Range |
Input/Output |
|---|---|---|---|
dst |
Output image. |
Mat class |
Output |
type_ |
Target data type. |
(CV_8U, CV_64F) |
Input |
alpha |
(Optional) Scaling factor. The default value is 1. |
(-inf, inf) |
Input |
beta |
(Optional) Offset. The default value is 0. |
(-inf, inf) |
Input |
Return Values
- Success: KP_CV_SUCCESS
- Failure: an error code
Error Codes
Error Code |
Description |
|---|---|
INVALID_PARAM_MSG |
The input image is null. |
NOT_SUPPORT_MSG |
The input image type is incorrect or the type_ value is not supported. |
Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | #include <opencv2/opencv.hpp> #include <iostream> int main() { // Create a 5x5 image. cv::Mat src = (cv::Mat_<uint8_t>(5, 5) << 0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 1, 0, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0); // Convert the data type of the image from 8-bit unsigned integers to 32-bit floating point numbers and scale the image. cv::Mat dst; src.convertTo(dst, CV_32F); // Data type conversion cv::convertScaleAbs(dst, dst, 2.0, 0); // Image scaling // Output image std::cout << dst << std::endl; return 0; } |
Output:
1 2 3 4 5 | [[ 0 0 0 0 0] [ 0 2 2 2 0] [ 0 2 0 2 0] [ 0 2 2 2 0] [ 0 0 0 0 0]] |
Parent topic: Interface Definition