c++实现16位图转换成8位图

news/2024/7/21 7:25:04 标签: c++, 图像处理

16位图片转换成8位图,并进行灰度值的范围调节

注:主要是通过调整upper_limit这个参数

cv::Mat float16touint8(cv::Mat image, float lower_limit, float upper_limit)
{
	clock_t s = clock();
	if (image.empty())
		return cv::Mat();

	int width = image.cols;//图片宽度
	int height = image.rows;//图片高度
	Mat dst = Mat::zeros(height, width, CV_8UC1);//先生成空的目标图片
	double minv = 0.0, maxv = 0.0;
	double* minp = &minv;
	double* maxp = &maxv;
	minMaxIdx(image, minp, maxp);  //取得像素值最大值和最小值
	maxv = min((int)maxv, 26000);
	maxv *= upper_limit / 255.0;
	
	//用指针访问像素,速度更快
	ushort* p_img;
	uchar* p_dst;
	double val;
	width *= height;
	height = 1;
	for (int i = 0; i < height; i++)
	{
		p_img = image.ptr<ushort>(i);//获取每行首地址
		p_dst = dst.ptr<uchar>(i);
		for (int j = 0; j < width; ++j)
		{
			val = (p_img[j] - minv) / (maxv - minv) * 255;
			if (val > 255)
				val = 255;
			else if (val < 0)
				val = 0;
			p_dst[j] = val;
		}
	}

	return dst;
}

http://www.niftyadmin.cn/n/5242011.html

相关文章

python实战—核心基础1(高考倒计时)lv1

目录 一、核心代码解释 二、代码 三、运行截图 一、核心代码解释 1、datetime模块 Python有一个名为datetime的模块&#xff0c;用于处理日期和时间。 datetime模块中定义的一个类是datetime类。 可以使用now()方法创建一个包含当前本地日期和时间的datetime对象。 impo…

BabyLIN产品如何轻松搞定K线协议实现?

来源&#xff1a;虹科汽车电子 虹科技术丨BabyLIN产品如何轻松搞定K线协议实现&#xff1f; 原文链接&#xff1a;https://mp.weixin.qq.com/s/LR7VHFQajjyw6s6bVDJmsg 欢迎关注虹科&#xff0c;为您提供最新资讯&#xff01; 导读 为了实现K线通信&#xff0c;SDF-V3在协议…

RESTful API,以及如何使用它构建 web 应用程序。

RESTful API是一种基于REST&#xff08;Representational State Transfer&#xff09;架构风格的API&#xff08;Application Programming Interface&#xff09;&#xff0c;它采用HTTP协议中的GET、POST、PUT、DELETE等方法&#xff0c;对资源进行操作。RESTful API的核心思想…

【虚拟机磁盘扩容】 centos7把/dev/sda的磁盘空间分给根目录

一、修改硬盘大小 关闭虚拟机→设置→硬盘→修改到自己需要的磁盘大小 二、查看根目录当前磁盘使用情况统计 df -h 注&#xff1a;虽然在第1步已经设置过新的磁盘大小为50G&#xff0c;但是这里明显可以看出总磁盘大小依旧是之前的20G&#xff0c;这就涉及到分区问题。 三、…

26、卷积 - 实际上是一个特征提取器

矩阵乘法的本质是特征的融合&#xff0c;卷积算法的本质是特征的提取。 回想一下之前所有介绍卷积的时候&#xff0c;描述了一种卷积运算的场景&#xff0c;那就是一个窗口在图片上滑动&#xff0c;窗口中的数值是卷积核的参数&#xff0c;也就是权值。 卷积的计算本质是乘累…

Spring boot -- 学习HttpMessageConverter

文章目录 1. Json格式数据获取2. 为什么返回Json格式的数据2.1 注解SpringBootAppliaction2.1.1 SpringBootConfiguration2.1.2 ComponentScan2.1.3 EnableAutoConfiguration2.1.3.1 HttpMessageConvertersAutoConfiguration2.1.3.2 WebMvcAutoConfiguration 2.2 注解RestContr…

MySQL四 | 约束

目录 约束的种类 添加外键约束 在创建表时添加外键 创建表之后添加外键 更新/删除外键约束的规则 删除外键 更新指令 约束是作用于表中字段上的规则&#xff0c;用于限制存储在表中的数据&#xff0c;可以保证数据库中数据的正确&#xff0c;有效性和完整性。 约束的种…

二手物品交易系统详细功能介绍

这是二手物品交易系统的详细功能介绍&#xff1a; 二手交易系统&#xff1a;该系统主要服务于二手交易市场&#xff0c;允许卖家发布二手商品信息&#xff0c;买家可以询价、购买支付&#xff0c;同时支持发布高价回收信息。多城市切换&#xff1a;用户可以切换到不同城市&…