convertScaleAbs()
用途:
1. 对整个图像数组中的每一个元素,进行如下操作: 该操作可实现图像增强等相关先行操作的快速运算,具体用法如下:
void cv::convertScaleAbs(
cv::InputArray src, // 输入数组
cv::OutputArray dst, // 输出数组
double alpha = 1.0, // 乘数因子
double beta = 0.0 // 偏移量
);
int main()
{
///1.用于对像素值进行线性操作
Mat src = imread("timg.jpg", 1);
Mat dst;
convertScaleAbs(src, dst, 1.5, 10);
imshow("src", src);
imshow("dst", dst);
return 0;
}
2. 也常用于将CV_16S、CV_32F等其他类型的输出图像转变成CV_8U型的图像。
//load the Original Image and get some informations
Mat src = imread("012.jpg",0);
//OpenCV solution - Laplacian
Mat dst,abs_dst_laplace;
Laplacian(src,dst,CV_16S,3);
convertScaleAbs(dst,abs_dst_laplace);
//gradient
Mat grad_x;
Sobel(image, grad_x, CV_32F, 1, 0, -1);
image = grad_x;
convertScaleAbs(image,image)
imshow("dst",image);
waitKey();
其中convertScaleAbs函数功能是将CV_16S型的输出图像转变成CV_8U型的图像。
参考文章:
1. https://blog.youkuaiyun.com/guduruyu/article/details/81605726