OpenCV-Python学习(17)—— OpenCV 图像像素类型转换与归一化(cv.normalize)

这篇具有很好参考价值的文章主要介绍了OpenCV-Python学习(17)—— OpenCV 图像像素类型转换与归一化(cv.normalize)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 学习目标

  1. 学习 OpenCV 图像像素的类型转换;
  2. 学习 OpenCV 归一化函数。

2. OpenCV 图像像素的类型转换

由于【在 OpenCV-Python 中一切图像数据皆 numpy.array】,因此像素的类型转换可以直接使用 numpy 的类型转换方法。

2.1 将像素转换为 float32
import numpy as np
import cv2 as cv

def check_type():
  img = cv.imread('./images/squirrel_cls.jpg')
  print('img_type',np.dtype(img[0][0][0]))
  print('img_data',img[0][0][0])
  cv.imshow("img", img)

  # 图像像素的类型转换为float32
  img_float32 = np.float32(img)
  print('img_float32_type',np.dtype(img_float32[0][0][0]))
  print('img_float32_data',img_float32[0][0][0])
  cv.imshow("img_float32", img_float32)

  cv.waitKey(0)
  cv.destroyAllWindows()

if __name__ == "__main__":
  check_type()
2.2 数据输出结果

OpenCV-Python学习(17)—— OpenCV 图像像素类型转换与归一化(cv.normalize)

2.3 图像输出结果

OpenCV-Python学习(17)—— OpenCV 图像像素类型转换与归一化(cv.normalize)

3. 归一化(cv.normalize)

归一化就是要把需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。

首先归一化是为了后面数据处理的方便,其次是保证程序运行时收敛加快。归一化的具体作用是归纳统一样本的统计分布性。归一化在0-1之间是统计的概率分布,归一化在某个区间上是统计的坐标分布。归一化有同一、统一和合一的意思。

归一化的目的,是使得没有可比性的数据变得具有可比性,同时又保持相比较的两个数据之间的相对关系,如大小关系;或是为了作图,原来很难在一张图上作出来,归一化后就可以很方便的给出图上的相对位置等。

3.1 cv.normalize() 函数使用
cv.normalize(src[, dst[, alpha[, beta[, norm_type[, dtype[, mask]]]]]]) → dst
3.2 参数说明
参数 说明
src 表示输入图像。
dst 表示输出图像。
alpha 表示在范围归一化的情况下,归一化的下限边界或下限边界的标准值。
beta 表示在范围归一化的情况下,归一化的上范围边界。
norm_type 表示归一化的类型。
dtype 表示当为负时,输出数组的类型与src相同;否则,它具有与src相同的通道数。
3.3 norm_type 值说明
说明
NORM_L1 表示图像矩阵中值的绝对值的和。
NORM_L2 表示图像矩阵中值的平方和的开方。
NORM_INF 表示图像矩阵中值的绝对值的最大值。
NORM_MINMAX 表示图像矩阵中的数值被平移或缩放到一个指定的范围,线性归一化。
3.4 norm_type 值计算公式
  1. NORM_L1 : 归一化数组的(曼哈顿距离)L1-范数(绝对值的和)

  2. NORM_L2 : 归一化数组的(欧几里德距离)L2-范数(平方和的开方)

  3. NORM_INF : 归一化数组的(切比雪夫距离)L∞-范数(绝对值的最大值)

  4. NORM_MINMAX : 归一化数组的数值被平移或缩放到一个指定的范围

3.5 归一化计算实例

OpenCV-Python学习(17)—— OpenCV 图像像素类型转换与归一化(cv.normalize)

4. OpenCV 归一化实例代码

4.1 代码
import numpy as np
import cv2 as cv

def check_type():
  img = cv.imread('./images/squirrel_cls.jpg')
  cv.imshow("img", img)

  # 图像像素的类型转换为float32
  img_float32 = np.float32(img)
  cv.imshow("img_float32", img_float32)

  # 归一化 NORM_L1
  img_NORM_L1 = img_float32.copy()
  cv.normalize(img_float32,img_NORM_L1,1,0,cv.NORM_L1)
  print(img_NORM_L1[0][0])
  cv.imshow("img_NORM_L1", img_NORM_L1)

  # 归一化 NORM_L2
  img_NORM_L2 = img_float32.copy()
  cv.normalize(img_float32,img_NORM_L2,1,0,cv.NORM_L2)
  print(img_NORM_L2[0][0])
  cv.imshow("img_NORM_L2", img_NORM_L2)

  # 归一化 NORM_INF
  img_NORM_INF = img_float32.copy()
  cv.normalize(img_float32,img_NORM_INF,1,0,cv.NORM_INF)
  print(img_NORM_INF[0][0])
  cv.imshow("img_NORM_INF", img_NORM_INF)

  # 归一化 NORM_MINMAX
  img_NORM_MINMAX = img_float32.copy()
  cv.normalize(img_float32,img_NORM_MINMAX,1,0,cv.NORM_MINMAX)
  print(img_NORM_MINMAX[0][0])
  cv.imshow("img_NORM_MINMAX", img_NORM_MINMAX)

  cv.waitKey(0)
  cv.destroyAllWindows()

if __name__ == "__main__":
  check_type()
4.2 效果

OpenCV-Python学习(17)—— OpenCV 图像像素类型转换与归一化(cv.normalize)

4.3 输出第一个像素不同方式的归一化后的值

OpenCV-Python学习(17)—— OpenCV 图像像素类型转换与归一化(cv.normalize)

5. 总结

  1. 归一化是要把需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。
  2. 理解归一化不同计算方式的过程。

6. 参考

  1. opencv中归一化函数normalize()的原理讲解
  2. 对比度增强(二):直方图正规划与伽马变换 cv.normal()函数使用及原理
  3. 学习【英特尔 OpenCV 初级认证课程-图像像素类型转换与归一化】

7. 说明

其中计算公式的图片直接使用的是opencv中归一化函数normalize()的原理讲解中的图片,如果不允许使用,请联系我,我会删除该部分内容!谢谢!文章来源地址https://www.toymoban.com/news/detail-448055.html

到了这里,关于OpenCV-Python学习(17)—— OpenCV 图像像素类型转换与归一化(cv.normalize)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Qt-OpenCV学习笔记--基本函数操作--cv::convertTo(图像类型转换)

    不是所有格式的Mat型数据都能被使用。 目前OpenCV主要只支持单通道和3通道的图像,并且此时要求其深度为8bit和16bit无符号(即CV_16U),所以其他一些数据类型是不支持的,比如说float型等。 如果Mat类型数据的深度和通道数不满足上面的要求,则需要使用convertTo()函数和cvtColor(

    2024年02月04日
    浏览(60)
  • 【OpenCV-Python】——机器学习kNN算法&SVM算法&k均值聚类算法&深度学习图像识别&对象检测

    目录 前言: 1、机器学习 1.1 kNN算法 1.2 SVM算法(支持向量机)  1.3 k均值聚类算

    2024年02月05日
    浏览(49)
  • OpenCV-Python学习(20)—— OpenCV 图像几何变换之图像旋转(cv.warpAffine、cv.getRotationMatrix2D、cv.rotate、np.rot90)

    1. 学习目标 学习旋转矩阵; 学习使用 OpenCV 的 cv.warpAffine 函数进行图片的旋转; 学习使用 OpenCV 的 cv.getRotationMatrix2D 来计算不同旋转中心的不同角度的 MAR 旋转变换矩阵; 学习使用 OpenCV 的 cv.rotate 进行特殊角度的旋转(90,180,270 度)。 2. 不同中心的旋转矩阵计算 2.1 图像

    2024年02月09日
    浏览(42)
  • opencv-python使用鼠标点击图片显示该点坐标和像素值&&IPM逆透视变换车道线&&二值化处理

    实现获取像素点的功能主要基于OpenCV的内置函数cv2.setMouseCallback(),即鼠标事件回调 setMouseCallback(winname, onMouse,userdata=0) winname: 接收鼠标事件的窗口名称 onMouse: 处理鼠标事件的回调函数指针 userdata: 传给回调函数的用户数据  代码实现:鼠标点击图片时,读取当前鼠标对应位置

    2024年02月12日
    浏览(54)
  • 【计算机视觉—python 】 图像处理入门教程 —— 图像属性、像素编辑、创建与复制、裁剪与拼接【 openCV 学习笔记 005 to 010 and 255】

    OpenCV中读取图像文件后的数据结构符合Numpy的ndarray多维数组结构,因此 ndarray 数组的属性和操作方法可用于图像处理的一些操作。数据结构如下图所示: img.ndim:查看代表图像的维度。彩色图像的维数为3,灰度图像的维度为2。 img.shape:查看图像的形状,代表矩阵的行数(高

    2024年01月19日
    浏览(70)
  • 图像合成——OpenCV-Python图像融合详解

    图像合成——OpenCV-Python图像融合详解 在图像处理中,图像的合成是一项重要的任务。OpenCV提供了许多方法来实现图像合成。其中,cv::addWeighted()函数是一种常用的图像融合方法。它可以将两张图片以一定的权重相加,产生一张新的融合图像。 下面我们将详细讲解OpenCV中的c

    2024年02月14日
    浏览(51)
  • OpenCv-Python图像特征识别

    本练习学习了OpenCv-Python关于图像特征识别的一些算法,算法理解起来较为困难,但函数用起来上手比较快,主要要明白函数的输入输出的含义。 虽然算法理解不容易,但程序还算有趣,输入是一个完整的图片和一组图片碎片,如下图,然后经过算法计算,把碎片匹配到正确

    2024年02月07日
    浏览(55)
  • Opencv+Python图像像素处理

    目录 二值图像的像素访问、修改 单个像素访问、修改  多个像素修改 彩色图像(三维数组) 像素访问、修改 BGR模式 像素访问、修改 单个像素访问、修改 打印结果:   多个像素修改 运行结果:  BGR模式 像素访问、修改 运行效果:    对于三维数组(BGR模式) img[0,3

    2024年02月12日
    浏览(51)
  • OpenCV-Python(49):图像去噪

    学习使用非局部平均值去噪算法去除图像中的噪音 学习函数cv2.fastNlMeansDenoising()、cv2.fastNlMeansDenoisingColored等         在前面的章节中我们已经学习了很多图像平滑技术,比如高斯平滑、中值平滑等。当噪声比较小时,这些技术的效果都是很好的。在这些技术中我们选取像

    2024年01月21日
    浏览(40)
  • OpenCV-Python中的图像基础操作

    首先读入一副图像: 获取像素值及修改的更好方法: img = cv2.imread(‘./resource/image/1.jpg’, cv2.IMREAD_COLOR) img.shape: 图像的形状(包括行数,列数,通道数的元组) img.size : 图像的像素数目 img.dtype :图像的数据类型 ROI(regionofinterest),感兴趣区域。机器视觉、图像处理中,从被

    2024年02月11日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包