【OpenCV 4】图像像素的归一化
一、编程环境:
OpenCV | 4.1.0 |
IDE | Visual Studio 2017 Enterprise (15.9.13) |
操作系统 | Windows 10 x64 中文专业版 (1903) |
二、归一化:
归一化就是要把需要处理的数据经过处理后(通过某种算法)限制在一定范围的之内。
首先归一化是为了后面数据处理的方便,其次是保证程序运行时收敛加快。
归一化的具体作用是归纳统一样本的统计分布性。
归一化在0-1之间是统计的概率分布,归一化在某个区间上是统计的坐标分布。归一化有同一、统一和合一的意思。
归一化的目的,是使得没有可比性的数据变得具有可比性,同时又保持相比较的两个数据之间的相对关系,如大小关系;或是为了作图,原来很难在一张图上作出来,归一化后就可以很方便的给出图上的相对位置等。
三、归一化的方式:(在 base.hpp 中定义)
在 OpenCV 4.1.0 中定义了 9 种方式:
enum NormTypes {NORM_INF = 1,NORM_L1 = 2,NORM_L2 = 4,NORM_L2SQR = 5,NORM_HAMMING = 6,NORM_HAMMING2 = 7,NORM_TYPE_MASK = 7, NORM_RELATIVE = 8,NORM_MINMAX = 32 };
四、OpenCV 归一化函数:normalize()
void normalize( InputArray src, InputOutputArray dst, double alpha = 1, double beta = 0,int norm_type = NORM_L2, int dtype = -1, InputArray mask = noArray());
五、示例代码:
#include <opencv2/opencv.hpp>
#include <iostream>using namespace cv;
using namespace std;int main(int argc, const char *argv[])
{Mat src = imread("../images/test.png");if (src.empty()) {printf("不能加载图片!\n");return -1;}namedWindow("1--原图", WINDOW_AUTOSIZE);imshow("1--原图", src);Mat gray;cvtColor(src, gray, COLOR_BGR2GRAY);// 转换为浮点数类型数组gray.convertTo(gray, CV_32F);// 归一化:NORM_MINMAXMat dst = Mat::zeros(gray.size(), CV_32FC1);normalize(gray, dst, 1.0, 0, NORM_MINMAX);Mat result = dst * 255;result.convertTo(dst, CV_8UC1);imshow("2--NORM_MINMAX", dst);// 归一化:NORM_INFnormalize(gray, dst, 1.0, 0, NORM_INF);result = dst * 255;result.convertTo(dst, CV_8UC1);imshow("3--NORM_INF", dst);// 归一化:NORM_L1normalize(gray, dst, 1.0, 0, NORM_L1);result = dst * 10000000;result.convertTo(dst, CV_8UC1);imshow("4--NORM_L1", dst);// 归一化:NORM_L2normalize(gray, dst, 1.0, 0, NORM_L2);result = dst * 10000;result.convertTo(dst, CV_8UC1);imshow("5--NORM_L2", dst);waitKey(0);return 0;
}
六、运行效果:
【OpenCV 4】图像像素的归一化相关推荐
- Opencv -- 18图像像素类型转换与归一化
原文笔记参考(转载)链接:https://www.freesion.com/article/48551470037/. 什么是归一化 概念一:归一化是把需要处理的数据通过某种算法处理后限制在所需要的一 ...
- dataset中获取图像的名字_GDAL与OpenCV的图像像素读取格式互相转换
前言 任务原因,遇到了一个需要GDAL图像像素格式与OpenCV相互转换的问题,解决之后顺便记录一下. 正文 OpenCV(Open Source Computer Vision Library)是一 ...
- OpenCV之图像像素归一化
python代码: import cv2 as cv import numpy as npsrc = cv.imread("./test.png") cv.namedWindow( ...
- opencv之 图像像素操作(如何通过opencv在图像上划线)
首先我们了解,一个图像,都是一个大的二维数组,每一个元素都是一个像素,若是rgb图像,则该像素还会有rgb三个值,我们读入一个图像 import cv2img = cv2.imread("o ...
- opencv 修改图像像素
#include <iostream> #include <opencv2/core/core.hpp> #include <opencv2/highgui/highgu ...
- python opencv读取图像像素值_python-opencv--图像像素通道读取及修改
data/dtype/size/shape/len ''' import cv2 as cv import numpy as np def access_pixes(image): print(ima ...
- OpenCV计算图像像素最大值、最小值
第一种方法: Mat img = imread("./1.jpg", 0); double minVal = 0.0; double maxVal = 0.0; minMaxL ...
- 【CV】图像标准化与归一化
https://mp.weixin.qq.com/s/BH9TrDjuql0fcvuTQmTFWQ 使用深度学习在进行图像分类或者对象检测时候,首先需要对图像做数据预处理,最常见的对图像预处理方法有两 ...
- android都图片mat_计算机视觉 OpenCV Android | Mat像素操作(图像像素的读写、均值方差、算术、逻辑等运算、权重叠加、归一化等操作)...
本文目录 1. 像素读写 2. 图像通道与均值方差计算 3. 算术操作与调整图像的亮度和对比度 4. 基于权重的图像叠加 5. Mat的其他各种像素操作 1. 像素读写 Mat作为图像容器,其数据部分 ...
最新文章
- 对面向对象基本原则的总结
- Android图片褪色,Android – 使用Alpha褪色动画闪烁图片
- 组织与科目等维度构建
- AI、ML论文网站、如何阅读论文?
- git gui here如何汉化_你不知道的一些在Git使用中的奇技淫巧!
- vb中filecopy拷贝文件
- javaweb基础知识点记录2
- sqlrowset 转化为json_Python 操作 JSON 的 9 个示例
- PLSql不用安装Oracle客户端,实现远程连接
- win10 系统Docker搭建设备共享平台stf(一)
- 网络工程师--网络规划和设计案例分析(4)
- Java开发的发展前景和未来规划方向
- 《曹全碑》临习方法与释文翻译
- Tushare股票数据全生命周期MACD等指标动态获取计算-前复权
- 浙大竺可桢学院混合班计算机专业,起底黄峥毕业的浙大混合班:学霸不算牛 个个是学神...
- JS中findIndex方法的使用场景以及与find的差别
- 经典游戏-贪食蛇(二维数组坐标)
- 【Java】什么是面向对象
- kerberos 部署
- dom元素转化成字符串;字符串html 转换成 实际代码html; innerHTML, outerHTML,