OpenCV图像自动缩放(Autoscaling)函数autoscaling()

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

该函数用于对输入图像进行自动缩放(Autoscaling),即根据输入图像的像素值范围将其线性映射到一个新的范围内(例如 [0, 255]),从而增强图像的对比度。

这属于一种**强度变换(Intensity Transformation)**方法,常用于图像处理中改善图像视觉效果或为后续处理做准备。

  • 此函数会计算输入图像的最小值和最大值。

  • 然后将图像的像素值线性地拉伸到目标范围(通常是 0 到 255 的 uchar 范围)。

  • 相当于执行了以下公式:
    output(x,y)=input(x,y)−min⁡max⁡−min⁡×255\text{output}(x, y) = \frac{\text{input}(x, y) - \min}{\max - \min} \times 255output(x,y)=maxmininput(x,y)min×255

  • 如果输入是浮点型图像(如 CV_32F 或 CV_64F),这个操作尤其有用。

函数原型

void cv::intensity_transform::autoscaling 	
(const Mat  	input,Mat &  	output 
) 		

参数

参数名类型含义
inputconst Mat输入图像矩阵。支持单通道或多通道图像,但通常用于灰度图。
outputMat&输出图像矩阵,与输入图像尺寸和类型相同,但像素值被自动缩放到新范围(如 0~255)。

应用场景:

  • 图像增强(提高对比度)
  • 预处理步骤(如用于机器学习、计算机视觉任务)
  • 可视化浮点图像数据(如梯度图、深度图等)

示例代码


#include <opencv2/intensity_transform.hpp>
#include <opencv2/opencv.hpp>int main()
{// 读取图像(灰度图)cv::Mat img = cv::imread( "/media/dingxin/data/study/OpenCV/sources/images/Lenna.png", cv::IMREAD_GRAYSCALE );cv::Mat result;// 转换为浮点型图像以便处理cv::Mat floatImg;img.convertTo( floatImg, CV_32F );// 自动缩放cv::intensity_transform::autoscaling( floatImg, result );// 将结果转换回 8U 类型显示cv::Mat finalResult;result.convertTo( finalResult, CV_8U );// 显示结果cv::imshow( "Original", img );cv::imshow( "Auto-scaled", finalResult );cv::waitKey( 0 );return 0;
}

运行结果

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/91707.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/91707.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多线程的认识

竞争与协作在单核 CPU 系统里&#xff0c;为了实现多个程序同时运行的假象&#xff0c;操作系统通常以时间片调度的方式&#xff0c;让每个进程执行每次执行一个时间片&#xff0c;时间片用完了&#xff0c;就切换下一个进程运行&#xff0c;由于这个时间片的时间很短&#xff…

SpringCloud相关总结

SpringCloud相关总结 1. 权威文档推荐&#xff1a; 官方文档&#xff1a;https://spring.io/cloud 玩的时候&#xff0c;注意SpringBoot与SpringCloud的版本兼容问题,推荐参考&#xff1a;https://github.com/alibaba/spring-cloud-alibaba/wiki/%E7%89%88%E6%9C%AC%E8%AF%B4%…

NW983NW988美光固态闪存NW991NW992

美光NW系列固态闪存深度解析&#xff1a;技术、对比与应用指南一、技术根基与架构创新美光NW系列固态闪存的技术突破源于其先进的G9 NAND架构&#xff0c;该架构采用5纳米制程工艺和多层3D堆叠技术&#xff0c;在单位面积内实现了高达256层的存储单元堆叠&#xff0c;存储密度较…

pytest + requests 接口自动化测试框架

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 使用 pytest + req

Android性能优化之网络优化

一、网络性能瓶颈深度解析 1. 网络请求全链路耗时分析 #mermaid-svg-3cXlC9wERu99EHQH {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-3cXlC9wERu99EHQH .error-icon{fill:#552222;}#mermaid-svg-3cXlC9wERu99EHQH …

实现库存显示和状态按钮的Question

首先实现显示图书库存 1 if条件标签里的test""要和实体类的属性名保持一致 否则会报找不到get方法的错误org.apache.ibatis.reflection.ReflectionException: There is no getter for property named stock in class2后端已经把bookStock传到前端了&#xff0c;但是显…

vue + Cesium 实现 3D 地图水面效果详解

一、引言Cesium 是一个强大的开源 JavaScript 库&#xff0c;用于创建基于 Web 的 3D 地理信息系统 (GIS) 应用程序。它提供了丰富的 API&#xff0c;可以实现各种复杂的地理可视化效果&#xff0c;包括地形渲染、建筑物建模、矢量数据显示等。本文将详细介绍如何使用 Cesium 实…

统信 UOS 运行 Windows 应用新利器!彩虹虚拟化软件 V3.2 全新上线,限时30天免费体验

原文链接&#xff1a;统信 UOS 运行 Windows 应用新利器&#xff01;彩虹虚拟化软件 V3.2 全新上线&#xff0c;限时30天免费体验 在国产操作系统逐渐普及的今天&#xff0c;许多用户仍面临一个实际问题——一些办公软件或行业工具仍然仅支持 Windows 系统。对于已全面部署统信…

Vue中使用vue-3d-model实现加载3D模型预览展示

场景 要实现在页面中简单快速的加载3D模型用于产品展示。 实现效果如下&#xff1a; 注&#xff1a; 博客&#xff1a; 霸道流氓气质-CSDN博客 实现 3D模型技术方案对比 这里用于快速展示简单3d模型。 3D模型文件下载 可下载的网站较多&#xff0c;比如&#xff1a; Sk…

GaussDB join 连接的用法

1 join 连接的作用join 连接用于把来自两个或多个表的行结合起来&#xff0c;基于这些表之间的共同字段。 最常见的 join 类型&#xff1a;inner join&#xff08;简单的 join&#xff09;。 inner join 从多个表中返回满足 join条件的所有行。2 示例数据让我们看看选自 "…

GitHub开源轻量级语音模型 Vui:重塑边缘智能语音交互的未来

前言 今天将深入解析一款颠覆性开源语音模型——Vui&#xff08;来自 Fluxions-AI 项目&#xff09;。它正以“轻量化”为矛&#xff0c;刺破传统语音模型高耗能的壁垒&#xff0c;让智能语音无处不在。 GitHub&#xff1a;https://github.com/fluxions-ai/vuihuggingface&am…

用aws下载NOAA的MB文件

安装aws下载某航次MB文件 安装aws curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip" unzip awscliv2.zip sudo ./aws/install下载对应航次数据 aws s3 cp s3://noaa-wcsd-pds/data/raw/Atlantis/AT26-09 /home/xxx/…

Kubernetes (k8s)、Rancher 和 Podman 的异同点分析

1. Kubernetes (k8s) 类型&#xff1a;容器编排系统。功能&#xff1a; 自动化部署、扩展和管理容器化应用。支持跨多台主机的容器编排。提供服务发现、负载均衡、滚动更新等功能。 架构&#xff1a;基于 Master-Node 架构&#xff0c;Master 负责调度和管理&#xff0c;Node 运…

71 模块编程之新增一个字符设备

前言这个 主要是 最开始的时候了解驱动的时候, 看到的一系列的 case, 这里 来大致剖析一下 相关的道理这些模块 是怎么和内核交互的, 内核的这些业务是怎么实现的 这里主要是一个模块来注册了一个字符设备 然后这个字符设备 可读可写, 基于的是分配的一段空间 测试用例测试模块…

小众创新方向!多传感器融合与视觉惯性导航,定位精度和效率大幅提升!

多传感器融合与视觉惯性导航技术&#xff08;VINS&#xff09;取得了显著进展。近期&#xff0c;研究人员通过优化视觉与惯性传感器数据的融合算法、引入深度学习技术以及改进系统架构&#xff0c;显著提升了VINS在复杂环境下的定位精度和鲁棒性。基于深度学习的特征提取方法能…

超简单linux上部署Apache

1.Apache是什么&#xff1f;Apache 是世界上最流行的 ​​开源Web服务器软件​​&#xff0c;由 Apache 软件基金会维护。​​主要功能​​&#xff1a;接收客户端&#xff08;如浏览器&#xff09;的HTTP请求&#xff0c;返回网页、图片等静态/动态资源。​​特点​​&#xf…

前端 SSE 实战应用:用最简单的方式实现实时推送

前端 SSE 实战应用&#xff1a;用最简单的方式实现实时推送 &#x1f4cc; 点赞收藏关注不迷路&#xff01; 在前端项目中&#xff0c;我们常听到“实时通信”这个需求 —— 聊天、进度、状态变化、系统消息。 但提到实时&#xff0c;大家首先想到的是 WebSocket&#xff0c;对…

第16章 基于AB实验的增长实践——验证想法:AB实验实践

​一、AB实验全流程框架​实验分为5个核心环节&#xff1a;实验假设​ → 实验设计​ →实验运行​ → 实验分析​ → 实验决策​​二、各环节核心要点详解​​1. 实验假设​​原则​&#xff1a;目标性、可归因、可复用&#xff08;前两者必选&#xff09;​&#xff08;1&…

解决【软件安装路径】失败的方法

出现问题上图所示问题为&#xff1a;你的临时目录路径中包含 Unicode 字符&#xff0c;这可能会导致安装损坏。请参阅故障排除指南以获取解决方法。出现问题的原因&#xff1a;添加路径下存在中文&#xff0c;导致系统文件无法识别。解决方法步骤一&#xff1a;创建Temp(临时文…

FreeRTOS学习笔记——总览

考虑到RTOS能够提升单片机开发能力&#xff0c;也是开发复杂任务的必经之路&#xff0c;还是有必要学习的。 FreeRTOS教程多&#xff0c;免费开源&#xff0c;是个不错的选择。后续可以考虑继续学习RT-Thread等。 参考1&#xff1a;FreeRTOS(教程非常详细&#xff09;——作者&…