如何在OpenCV Python中归一化图像?

这篇具有很好参考价值的文章主要介绍了如何在OpenCV Python中归一化图像?。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

opencv归一化,Opencv,python,开发语言,opencv,人工智能,计算机视觉,机器学习,深度学习

我们使用函数cv2.normalize()在OpenCV中归一化图像。此函数接受参数- src、dst、alpha、beta、norm_type、dtype 和 mask。src 和dst是输入图像和与输入相同大小的输出图像,alpha是用于范围归一化的较低标准值, beta 是用于范围归一化的较高标准值,norm_type是归一化类型, dtype 是输出数据类型,而 mask 是可选的操作掩码。

步骤

要归一化图像,我们可以按照以下步骤进行:

  • 导入所需的库。在以下所有示例中,所需的Python库是 OpenCV 。请确保您已经安装了它。
  • 使用 cv2.imread() 方法将输入图像作为灰度图像读取。指定图像的完整路径以及图像类型(即png或jpg)。

  • 在输入图像img上应用 cv2.normalize() 函数。传递参数 src、dst、alpha、beta、norm_type、dtype 和 mask 。

img_normalized = cv2.normalize(img, None, 0, 1.0, cv2.NORM_MINMAX, dtype=cv2.CV_32F)
  • 显示归一化输出图像。

  • 在Normalize之前和之后打印图像数据。试图找出这两个图像数据之间的差异。

让我们通过一些Python示例来了解问题。

我们将使用此图像作为 输入文件 在以下示例中。

opencv归一化,Opencv,python,开发语言,opencv,人工智能,计算机视觉,机器学习,深度学习

示例

在此Python程序中,我们使用min-max norm对彩色输入图像进行归一化。将图像像素值归一化到范围[0,1]。

#导入所需的库
import cv2

#使用灰度图像读取输入图像
img = cv2.imread('jeep.jpg',0)
print("Normalize之前的图像数据:\n", img)

#归一化图像
img_normalized = cv2.normalize(img, None, 0, 1.0,
cv2.NORM_MINMAX, dtype=cv2.CV_32F)

#可视化归一化图像
cv2.imshow('归一化图像', img_normalized)
cv2.waitKey(0).destroyAllWindows()
print("Normalize之后的图像数据:\n", img_normalized)

输出

运行上述程序时,将产生以下输出 −

Normalize之前的图像数据:
[[ 37 37 37 ... 55 55 55]
[ 39 39 39 ... 57 56 56]
[ 39 39 39 ... 56 56 56]
...
[243 244 244 ... 82 85 86]
[242 245 245 ... 83 91 91]
[242 245 245 ... 86 94 93]]
Normalize之后的图像数据:
[[0.14509805 0.14509805 0.14509805 ... 0.21568629 0.21568629 0.21568629]
[0.15294118 0.15294118 0.15294118 ... 0.22352943 0.21960786 0.21960786]
[0.15294118 0.15294118 0.15294118 ... 0.21960786 0.21960786 0.21960786]
...
[0.95294124 0.9568628 0.9568628 ... 0.32156864 0.33333334 0.3372549 ]
[0.9490197 0.9607844 0.9607844 ... 0.3254902 0.35686275 0.35686275]
[0.9490197 0.9607844 0.9607844 ... 0.3372549 0.36862746 0.3647059 ]]

并且我们得到以下窗口显示归一化的图像 –

opencv归一化,Opencv,python,开发语言,opencv,人工智能,计算机视觉,机器学习,深度学习

示例

在这个Python程序中,我们使用min-max norm规范化二进制输入图像。规范化后的图像像素值为0或1。

# 导入所需库
import cv2

# 读取输入图像作为灰度图像
img = cv2.imread('jeep.jpg',0)
print("标准化前的图像数据:\n", img)

# 应用阈值创建二进制图像
ret,thresh = cv2.threshold(img,140,255,cv2.THRESH_BINARY)
print("阈值化后的图像数据:\n", thresh)

# 规范化二进制图像
img_normalized = cv2.normalize(thresh, None, 0, 1.0,
cv2.NORM_MINMAX, dtype=cv2.CV_32F)

# 可视化规范化后的图像
cv2.imshow('规范化后的图像', img_normalized)
cv2.waitKey(0)
cv2.destroyAllWindows()
print("标准化后的图片数据:\n", img_normalized)

输出

当您运行上述Python程序时,它将产生以下 输出 −

标准化前的图像数据:
[[ 37 37 37 ... 55 55 55]
[ 39 39 39 ... 57 56 56]
[ 39 39 39 ... 56 56 56]
...
[243 244 244 ... 82 85 86]
[242 245 245 ... 83 91 91]
[242 245 245 ... 86 94 93]]
阈值化后的图像数据:
[[ 0 0 0 ... 0 0 0]
[ 0 0 0 ... 0 0 0]
[ 0 0 0 ... 0 0 0]
...
[255 255 255 ... 0 0 0]
[255 255 255 ... 0 0 0]
[255 255 255 ... 0 0 0]]
标准化后的图片数据:
[[0. 0. 0. ... 0. 0. 0.]
[0. 0. 0. ... 0. 0. 0.]
[0. 0. 0. ... 0. 0. 0.]
...
[1. 1. 1. ... 0. 0. 0.]
[1. 1. 1. ... 0. 0. 0.]
[1. 1. 1. ... 0. 0. 0.]]

然后我们得到以下窗口显示规范化后的二进制图像−

opencv归一化,Opencv,python,开发语言,opencv,人工智能,计算机视觉,机器学习,深度学习

为帮助更多对人工智能感兴趣的小伙伴们能够有效的系统性的学习以及论文的研究,小编特意制作整理了一份人工智能学习资料给大家,整理了很久,非常全面。

大致内容包括一些人工智能基础入门视频和文档+AI常用框架实战视频、计算机视觉、机器学习、图像识别、NLP、OpenCV、YOLO、pytorch、深度学习与神经网络等学习资料、课件源码、国内外知名精华资源、以及AI热门论文等全套学习资料。

opencv归一化,Opencv,python,开发语言,opencv,人工智能,计算机视觉,机器学习,深度学习
需要以上这些文中提到的资料,请点击此处→【人工智能全套完整VIP资料】即可免费获取。

 文章来源地址https://www.toymoban.com/news/detail-742335.html

看完三件事❤️

  • 如果你觉得这篇内容对你还蛮有帮助,我想邀请你帮我三个小忙:
  • 点赞,转发,有你们的 『点赞和评论』,才是我创造的动力。
  • 关注作者公众号 『 python深度学习NLP 』,不定期分享原创知识。
  • 关注后回复【666】扫码即可获取学习资料包。
  • 同时可以期待后续文章ing🚀。
     

到了这里,关于如何在OpenCV Python中归一化图像?的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Python图像归一化:提升图像处理效果的利器

    图像归一化是图像处理中的重要步骤,能够帮助我们提升图像处理的效果。本文将介绍如何使用Python编程语言进行图像归一化,以及归一化的原理和常见的应用场景。 在图像处理中,我们经常需要对图像进行归一化处理,以便更好地进行后续处理或分析。Python是一种流行的编

    2024年02月13日
    浏览(49)
  • 【知识---如何进行图像数据的归一化呢(normalize)】

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 在做基于图像的目标检测遇到了图像的归一化操作,为此展开了一定的探讨: 图像归一化是指对图像进行了一系列标准的处理变换,使之变换为一固定标准形式的过程,该标准图像称作归一化图像。 这

    2024年01月19日
    浏览(53)
  • 如何在OpenCV Python中旋转图像?

    OpenCV提供了函数  cv.rotate()  以90度的倍数旋转图像(numpy数组)。该函数可以以三种可能的方式使图像旋转:90度,180度和270度顺时针旋转。以下是语法∶ rotateCode  是一个旋转标志,指定如何旋转数组。三个旋转标志如下∶ cv2.ROTATE_90_CLOCKWISE cv2.ROTATE_180 cv2.ROTATE_90_COUNTERCLOCKWIS

    2024年02月03日
    浏览(39)
  • Python|OpenCV-如何给目标图像添加边框(7)

    前言 本文是该专栏的第7篇,后面将持续分享OpenCV计算机视觉的干货知识,记得关注。 在使用opencv处理图像的时候,会不可避免的对图像的一些具体区域进行一些操作。比如说,想要给目标图像创建一个围绕图像的边框。简单的来说,就是在图片的周围再填充一个粗线框。具

    2024年02月07日
    浏览(42)
  • 如何使用Python中的OpenCV对图像进行调整大小?

    OpenCV  提供了函数  cv2.resize()  用于调整图像大小。OpenCV中的调整大小被称为  缩放  。我们可以通过指定图像大小或缩放因子来调整图像大小。当我们指定缩放因子时,宽高比会得到保留。 cv2.resize()  函数中有不同的插值方法: cv2.INTER_AREA  —— 用于缩小图像。 cv2.INTER

    2024年02月04日
    浏览(54)
  • OpenCV Python – 如何在图像上显示点击点的坐标?

    OpenCV为我们提供不同类型的鼠标事件,包括左键或右键单击、鼠标移动、左键双击等。鼠标事件返回鼠标事件的坐标(x,y)。为了在事件发生时执行一个操作,我们定义一个鼠标回调函数。我们使用左键单击(cv2.EVENT_LBUTTONDOWN)和右键单击(cv2.EVENT_RBUTTONDOWN)来显示在图像上单击的点

    2024年02月06日
    浏览(38)
  • openCV项目开发实战--详细介绍如何改善夜间图像的照明(附python和C++源码)

    文末附完整的代码实现下载链接 对于非摄影师来说,在光线不佳的条件下拍出好照片似乎很神奇。完成低光摄影需要技巧、经验和正确的设备的结合。在弱光下拍摄的图像缺乏色彩和独特的边缘。它们还遭受能见度差和深度未知的困扰。这些缺点使得此类图像不适合个人使用

    2024年02月12日
    浏览(55)
  • Android中的图像矩阵归一化

    在graphics包下的Matrix是一个3x3的矩阵,按网上的的图是这样的   MSCALE_X, MSCALE_Y表示缩放;  MSKEW_X, MSKEW_Y表示错切,与上面两个参数一起达到图像旋转效果; MTRANS_X, MTRANS_Y表示平移;  MPERSP_0, MPERSP_1表示透视; MPERSP_2固定为1。 在把图像矩阵应用到OpenGL中时遇到了问题:glsl中

    2023年04月23日
    浏览(50)
  • (图像分割)基于图论的归一化分割

    解释:将图像映射成图,以图为研究对象,利用图的理论知识获得图像的分割。 下面介绍:图的基本理论,基于图论的归一化分割算法 图G=(V,E,),分别是:节点、边、顶点和边的对应关系。简单记为G=(V,E)。 图的几个基本概念 1.顶点的度【无向图、有向图(入度、

    2024年02月07日
    浏览(41)
  • OpenCV入门(C++/Python)-使用OpenCV裁剪图像(四)

    裁剪是为了从图像中删除所有不需要的物体或区域。甚至突出显示图像的特定功能。 使用OpenCV裁剪没有特定的功能,NumPy数组切片是工作。读取的每个图像都存储在2D数组中(对于每个颜色通道)。只需指定要裁剪区域的高度和宽度(以像素为单位),就可以完成 以下代码片

    2024年02月08日
    浏览(37)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包