当前位置: 首页 > news >正文

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.lryc.cn/news/589156.html

相关文章:

  • 如何加固Web服务器的安全?
  • Volo-HTTP 0.4.0发布:正式支持 HTTP/2,客户端易用性大幅提升!
  • python学习---dayday6
  • AbMole小课堂 | Angiotensin II(血管紧张素Ⅱ)在心血管研究中的多元应用
  • Kimi-K2与DeepSeek-Chat全面对比:哪款AI大模型更强?
  • 【Python】定时器快速实现
  • React响应式组件范式:从类组件到Hooks
  • 嵌入式开发学习(第二阶段 C语言笔记)
  • 文心4.5开源背后的战略棋局:百度为何选择All in开放?
  • Python_1
  • xss-labs 1-8关
  • 零信任安全架构:如何在云环境中重构网络边界?
  • kotlin布局交互
  • 响应式编程入门教程第三节:ReactiveCommand 与 UI 交互
  • IDEA中删除多余的jdk选项 【IDEA2024版】
  • 数仓面试题
  • MongoDB数据问题说明
  • 论文笔记:Learning Cache Replacement with CACHEUS
  • BPE(字节对编码)和WordPiece 是什么
  • [雨云教程]端口冲突该如何解决
  • View2 UI聊天框架源码分享 - 支持[图文视频]混排 加入AI 分享一套功能强大的View2 UI聊天框架源码
  • 当Dynamics CRM On Promise 使用自建 CA(而非公共信任的 CA 如 DigiCert)时,集成中获取组织服务遇到证书问题处理:
  • Uniapp动态切换主题与老年模式详解
  • WebApplicationType.REACTIVE 的webSocket 多实例问题处理
  • 网络模型
  • TCP协议可靠性设计的核心机制与底层逻辑
  • 计算机系统方向可发会议/期刊参考时间
  • PostgreSQL 超详细安装与使用教程:从入门到实战
  • 【实时Linux实战系列】实时数据流的网络传输
  • Flutter Socket 连接方案分析与适用场景