《opencv实用探索·四》Mat图像数据类型转换和归一化显示

一种数据类型转为另一种数据类型,不改变图像大小,但每个像素值可能会变

src.convertTo(dst, type, scale, shift);

在这里插入图片描述
Scale和shitf默认为0(这两个参数也相当于对比度和亮度)

现在有个8位图像,把8位转成32位

在这里插入图片描述
在这里插入图片描述
可以看到像素大小没变,但位深度变了,8位无符号情况下的图像像素值超过255就溢出,但转成32位就不会溢出。

scale为1.0/255,shitf默认为0
在这里插入图片描述
在这里插入图片描述
像素值的计算过程为:mat2(191*(1.0/255), 127*(1.0/255), 63*(1.0/255), 0)

scale为1.0/255,shitf为-1

在这里插入图片描述
在这里插入图片描述
像素值的计算过程为:mat2(191*(1.0/255)-1, 127*(1.0/255)-1, 63*(1.0/255)-1, -1)

我们知道16为无符号像素范围为0-65535,现在有个八位图像Img,像素值是255,转到十六位

img.convertTo(img, CV_16U); 

img像素值还是255,但会出现一个现象:
原来8为的时候像素值是255,但图像显示都很正常,现在转到16位,像素值依旧255,但这时候图像显示基本全黑,这是为啥?

因为8位的时候像素范围是0-255,最亮的像素点大小即为255,当然可以正常显示,但16位范围0-65535,最亮点在65535,255相比65535可以忽略不计,所以图像基本全黑,这时候想要正常显示需要做归一化处理normalize

在这里插入图片描述
把0-255扩大到0-65535,这时候能正常显示图像。

转成32位需要注意的是:
32F图像显示范围为0-1,img.convertTo(img, CV_32F); 8位255值转32位依旧255,但32位图像显示范围0-1,超过1就是全白,这时候需要把32位图像归一化处理。

normalize(img,img, 0, 1, NORM_MINMAX); 

img范围0-1,类型32位不变。
注意:不能直接把高位往低位转,比如16位转8位,低于255的不变,高于的全部转位255,数据的实际信息会丢失.如果设置为很大的值,数据丢失的会更大。
注意:归一化不会改变图像位深度,之前是16位,之后也是16位

在这里插入图片描述

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

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

相关文章

SparkRDD及算子-python版

RDD相关知识 RDD介绍 RDD 是Spark的核心抽象,即 弹性分布式数据集(residenta distributed dataset)。代表一个不可变,可分区,里面元素可并行计算的集合。其具有数据流模型的特点:自动容错,位置…

【目标跟踪】光流跟踪(python、c++代码)

文章目录 前言一、代码流程与思路二、python 代码2.1 代码详解2.2 完整代码 三、c 代码四、结果展示 前言 光流利用图像序列中像素在时间域上的变化以及相邻帧之间的相关性来找到上一帧跟当前帧之间存在的对应关系,从而计算出相邻帧之间物体的运动信息的一种方法。…

ModBus电表与RS485电表有哪些区别?

在能源计量领域,ModBus电表和RS485电表是两种常见的设备,它们都具有监测和记录电能数据的功能。然而,它们之间存在一些区别,比如通信协议、连接方式、数据格式等等参数的区别有哪些? ModBus电表和RS485电表都是用于电能…

FreeSWITCH学习笔记:EventSocket

Event Socket命令最后需带有两个换行符。 api 执行API命令。阻塞。 1api API [ARG [ ...]] auth 内连模式下身份验证。需要第一个发送。 1auth PASSWORD bgapi 后台执行API命令。不阻塞。 1bgapi API [ARG [ ...]]2[Job-UUID: UUID] 返回带有Job-UUID。当API命令执行完成…

GPT-4惨遭削弱,偷懒摸鱼绝不多写一行代码,OpenAI已介入调查

GPT-4再次遭网友“群攻”,原因是“懒”得离谱! 有网友想在Android系统开发一个能够与OpenAI API实时交互的应用。 于是把方法示例链接发给GPT-4,让它参考用Kotlin语言编写代码: 没成想,和GPT-4一来二去沟通半天,GPT-4死活给不出…

数字孪生智慧园区:企业与政府合作的共赢之选

随着科技的快速发展和数字化转型的推动,数字孪生技术正逐渐成为智慧城市和园区建设的重要方向。数字孪生智慧园区,以数字孪生技术为驱动,通过对园区实体和虚拟环境的全面感知和深度理解,为园区管理者和入驻企业提供智能化决策支持…

微信发红包,有哪些测试点

1、功能 1.在红包钱数,和红包个数的输入框中只能输入数字 2.红包里最多和最少可以输入的钱数 200 0.01 3.拼手气红包最多可以发多少个红包 100 3.1超过最大拼手气红包的个数是否有提醒 4.当红包钱数超过最大范围是不是有对应的提示 5.当发送的红包个数超过…

YOLOv5改进之ShuffleNetV2

目录 一、原理 网络结构 二、代码 三、应用到YOLOv5 一、原理

linux 之iptables

1.iptables防火墙基本介绍 Linux系统的防火墙:IP信息包过滤系统,它实际上由两个组件 netfilter和 iptables 组成。 主要工作在网络层,针对IP数据包。体现在对包内的IP地址、端口、协议等信息的处理上。 iptables由软件包iptables提供的命令…

量子计算:探索未来的计算技术

量子计算:探索未来的计算技术 引言 在过去的几十年里,我们见证了计算机技术从简单的计算和存储发展到复杂的数据处理和人工智能的飞速进步。然而,随着我们进一步探索科技的前沿,传统的计算方法开始显示出其局限性。在这种情况下,量子计算——一种基于量子力学原理的新型计…

案例,linux环境下OpenCV+Java,实现证件照在线更换背景色

先看效果(图片来自网络,如有侵权,请联系作者删除) 主要是通过java实现的,linux环境编译安装opencv及证件照背景色更换的核心算法在前面一篇文章中有写到。 目前算法还有瞎呲,当照片光线不均的时候会出现误…

【JavaEE初阶】死锁问题

目录 一、死锁的三种典型场景 1、一个线程,一把锁 2、两个线程,两把锁 3、N个线程,M把锁 死锁,是多线程代码中的一类经典问题。我们知道加锁是能解决线程安全问题的,但是如果加锁的方式不当,就可能产生死…

工会排队奖励模式:创新营销策略,实现共赢局面

在当今的商业环境中,创新营销策略的重要性日益凸显。工会排队奖励模式作为一种新型的营销策略,旨在通过结合线上和线下消费,激励消费者购买产品或服务,并获得返现奖励。这种模式通过将消费者的支出和商家的抽成资金纳入奖金池&…

CH58x-BLE 程序阅读笔记

CH58x-BLE 程序阅读笔记 1. 广播1.1 广播类型设置1.2 广播数据长度 2. MTU设置2.1 CH58x 蓝牙协议栈支持有效最大MTU为247 1. 广播 1.1 广播类型设置 1.2 广播数据长度 1) GAP-广播数据(最大大小31字节,但最好保持较短以节省广告时的电量&a…

Linux 磁盘挂载

一、查看挂载点 df -h 二、查看磁盘信息 fdisk -l 下面红色的这一块就是未分区的磁盘 三、 进行磁盘分区 fdisk /dev/sdb /dev/sdb :是上面fdisk -l查询出来未分区的磁盘地址 根据提示输入m获取命令 四、执行命令,创建一个分区 1、新建分区&#…

【前端】three.js

文章目录 概述three.js-master目录结构Threejs 的基本要素场景相机透视相机正交相机 网格2d3d 灯光AmbientLight(环境光)平行光(DirectionalLight)点光源(PointLight)聚光灯(SpotLight) 渲染器 Threejs 的实…

WordPress更改文章分类插件

当WP网站内容比较多的时候,有时候如果涉及到批量修改文章分类,如果一个个的去操作的话就太费事了,如果使用后台批量修改分类的话是增加旧分类不会取消选择,就就导致我们适得其反还需要一个一个的去编辑取消,实在繁琐了…

Java高级技术(单元测试)

一,概括 二,junit 三,案例 (1),实验类 package com.bilibili;public class Name {public static void main(String name) {if (name null){System.out.println("0");return;}System.out.print…

PC端数据列表有头像显示头像,没有头像显示名字的第一个字

PC端数据列表有头像显示头像&#xff0c;没有头像显示名字的第一个字 .charAt(0) 是 JavaScript 字符串对象的方法&#xff0c;用于获取字符串的第一个字符。 字符串中的字符位置是从 0 开始的&#xff0c;所以.charAt(0) 就表示获取字符串的第一个字符。 <el-table ref&qu…

哈希思想应用【C++】(位图,布隆过滤器,海量数据处理面试题)

目录 一&#xff0c;位图 1. 位图概念 2.实现 3. 测试题 位图的优缺点 二&#xff0c;布隆过滤器 1). 布隆过滤器提出 2). 概念 3). 布隆过滤器的查找 4). 布隆过滤器删除(了解) 5). 布隆过滤器优点 6). 布隆过滤器缺陷 三&#xff0c;海量数据面试题 1&#xff…