为什么要把CV_8UC3(Vec3b)无符号整型转换成CV_32F(Vec3F)32位浮点数据类型?(在高精度下处理)
因为用CV_32F做处理精度较高,后面显示最终还得转换回cv_8UC3
示例:提高图像对比度(rgb和灰度都已实现)
#include <opencv2/opencv.hpp>
#include <iostream>using namespace cv;
using namespace std;int main(int argc, const char* argv[]) {Mat src, dst;//src = imread("./test.jpg");src = imread("./test.jpg", IMREAD_GRAYSCALE);//cvtColor(src, src, COLOR_BGR2GRAY);//if (src.empty()) {if (!src.data) {printf("could not load image...\n");return -1;}namedWindow("input img"); //默认自动窗口大小imshow("input img", src);Mat m1;src.convertTo(m1, CV_32F);//src.convertTo(dst, CV_32F, 1 / 255.0);int height = src.rows;int width = src.cols;int sc = src.channels();dst = Mat::zeros(src.size(), src.type());float alpha = 1.8;float beta = -50;for (int row = 0; row < height; row++){for (int col = 0; col < width; col++){for (int c = 0; c < 3; c++) //三个通道{if (sc == 3) {float b = m1.at<Vec3f>(row, col)[0]; //34.0000000float g = m1.at<Vec3f>(row, col)[1]; //14.0000000float r = m1.at<Vec3f>(row, col)[2];dst.at<Vec3b>(row, col)[0] = saturate_cast<uchar>(b * alpha + beta);dst.at<Vec3b>(row, col)[1] = saturate_cast<uchar>(g * alpha + beta);dst.at<Vec3b>(row, col)[2] = saturate_cast<uchar>(r * alpha + beta);}else if (sc == 1) {float v = m1.at<float>(row, col);dst.at<uchar>(row, col) = saturate_cast<uchar>(v * alpha + beta);}}}}imshow("output img", dst);waitKey(0);return 0;
}
VS编译运行:
参考文章:opencv用浮点数记录像素值的意义何在,用8UC3不就可以了吗? - William Wu的回答 - 知乎
为什么要把CV_8UC3(Vec3b)无符号整型转换成CV_32F(Vec3F)32位浮点数据类型?(在高精度下处理)相关推荐
- 【C#】ip与无符号整型转换
IP在数据库中储存,为了减少空间,可以存为无符号的整形,长度刚好够用.变换关系如下 这里使用Linq表达式 //ip转整型,示例结果为771452401 var ip = "45.251.1 ...
- 微信小程序js无符号整型转换有符号整型
在开发微信小程序读取金桔蓝牙设备的时候,经常用到设置RSSI或者读取RSSI,蓝牙设备的RSSI数据放在一个8位的BYTE 下面,这样就需要将无符号的整型转换为有服务的整型数据,即将uint8 转换为 ...
- C语言无符号整型转换字符串,字符串转换无符号整型
char* UInt32toStr(unsigned int n) { char buf[10] = ""; static char str[10]="&qu ...
- 0 有符号和无符号整型数字
8位无符号整型:0 -> 255 11111111 255 ... 10000000 128 01111111 127 ... 00000000 0 8位有符 ...
- php无符号整数转有符号整数,PHP中把有符号整型转换为无符号整型方法_PHP教程...
PHP中把有符号整型转换为无符号整型方法 这篇文章主要介绍了PHP中把有符号整型转换为无符号整型方法,转换的方法很简单,本文直接给出转换方法,需要的朋友可以参考下 在一个短地址项目中,根据六位字符与I ...
- 有符号和无符号整型的临界点
在C++ primer plus 上的图 觉得好久copy下来了 关于有符号和无符号整型的重置点 .
- 【c语言学习课堂笔记第三天】:int函数有符号整型和无符号整型
int 函数 有符号整型: 概念:截图 sizeof函数可查看字节数量 声明变量技巧: 随堂笔记: #include <stdio.h> #include <stdlib.h> ...
- 无符号整型与有符号整型
最近对于有符号整型与无符号整型,感觉很是头疼,都不知道怎么一回事.先看例子 #include<stdio.h> int main(void) { unsigned a=2; ...
- 负数时的有符号整型和无符号整型的转换
目录 一.补码 二.负数时的有符号整型和无符号整型的转换 三.关于无符号的笔试题 一.补码 有符号数在计算机中存储,用数的最高位存放符号, 正数为0, 负数为1 例如:有符号数 1000 0011,其 ...
最新文章
- 支付宝支付 第四集:配置类的定义和注入
- OUYA游戏开发快速入门教程第1章了解OUYA及其设备
- Python中小括号( )、中括号[ ]和大括号{}分别代表什么?
- SpringBoot学习笔记(4)----SpringBoot中freemarker、thymeleaf的使用
- 使用tf.keras搭建mnist手写数字识别网络
- c 结构体 不允许使用不完整的类型_.NET Core 基础类型介绍
- 面向对象程序设计 第六次作业
- python工作不好找吗_如何更好的找到 Python 工作?
- 微信无法连接服务器1-502,只有一部iphone x手机,在微信公众号中选择菜单,出现bad gateway 502错误,原因?...
- PHP|Yii2下通过插件进行图片处理(亲测可用)
- mysql 常用命令集_Mysql 常用命令集
- android异步任务更新进度条,Android的AsyncTask异步任务浅析
- 用.htaccess 禁止IP访问
- Linux 硬盘故障修复
- 小米笔记本UEFI关闭安全启动
- python期货基本面分析_期货盘面分析语言,我用python做期货
- 2022城市辅助驾驶赛道陷入“三国争霸”,数据智能助力毫末智行杀出重围?
- 星上SAR实时处理调研1
- 全国大学生数学建模竞赛——2017A题(学习笔记)
- 领域驱动设计实践(战术篇)