opencv c++图像像素类型转换与归一化(18)

opencv提供的归一化API:

normalize(src, dst, alpha, beta, norm_type, dtype, mask);

src——输入图像

dst——输出图像

alpha = 1——范围归一化的最小值(NORM_MINMAX)

beta = 0——范围归一化的最大值,该参数不能用于范数归一化的模式

norm_type = NORM_L2——归一化类型

dtype = -1——为负数时,默认输出数组的type与输入数组的type相同;否则,输出数组与输入数组只是通道数相同,而tpye=CV_MAT_DEPTH(dtype).

mask = noArray()——用于判断是否只对原图像中mask区域进行归一化处理

归一化类型(  参考网站:OpenCV: Operations on arrays):

实例:

void QuickDemo::normal_demo(Mat& image)
{
	Mat dst;
	cout << image.type() << endl;
	//将输入图像的像素变为float型数据,从CV_8UC3到CV_32FC3,因为归一化必须将像素值转为float型
	image.convertTo(image, CV_32F);
	cout << image.type() << endl;
	//对输入图像归一化,并打印类型
	normalize(image, dst, 1.0,0,NORM_MINMAX);
	cout << dst.type() << endl;
	//在imshow里,如果image的像素值为浮点型,则这些值必须经过归一化,否则无法正常显示
	imshow("图像归一化", dst);
}

注:

1、在进行归一化前,必须将输入的图像像素值使用converTo函数转换为float型。

2、在imshow中,输入图像像素值类型为float型时,在之前必须进行归一化处理,不然无法正常显示,因为imshow函数会自动对float型的像素值乘以255.

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值