首页 > 编程知识 正文

数字图像处理基础,数字图像处理的基本步骤

时间:2023-05-03 10:23:44 阅读:63478 作者:2850

介绍

数字图像处理由在计算机上处理图像的各种技术和方法构成。 对图像进行各种各样的操作,构成数字图像处理。

知道图像实际上是什么样的图像基本上是二维信号。 信号函数是f(x,y ),其中x和y是一个点的值,以生成该点的像素。 图像基本上是由0到255之间的数字组成的二维数组。

图像处理涉及多种因素。 图像处理有几个主要动机。

图像处理有助于改善保存的数字信息。

自动化图像处理。

改进了映像优化,实现了高效的存储和传输。

近年来,图像处理有了很大的进步,图像处理的现代商业应用也很多。

图像处理用途1 .图像校正、锐化、分辨率校正通常希望旧图像更好。 这在今天是可能的。 这包括缩放、锐化、边缘检测和高动态范围编辑。 所有这些步骤都有助于增强映像。 大多数编辑软件和图像二维码都可以很容易地完成这些操作。

2 .编辑APP应用程序和社交媒体过滤器当前,大多数编辑APP应用程序和社交媒体APP应用程序都提供了过滤器。

以上是原始图像和过滤图像的示例。 滤镜使图像在视觉上看起来很吸引人。 滤镜通常是一组函数,用于更改图像中的颜色和其他元素,使图像看起来不同。 滤波器是图像处理的有趣应用。

3 .在医疗技术医学领域,影像处理用于PET扫描、x线影像学、医学CT、紫外线影像学、癌细胞影像学等多种任务。 将图像处理引入医疗技术领域大大改善了诊断过程。

左边的图像是原始图像。 右边的图像是经过处理的图像。 可见处理后的图像一直很好,可以用于更好的诊断。

4 .计算机/机器视觉图像处理最有趣、最有用的应用之一是计算机视觉。 计算机视觉用于使计算机看到和认识事物,并将整个环境作为一个整体进行处理。 计算机视觉的重要用途之一是自动驾驶汽车、无人机等。 CV有助于障碍物检测、路径识别、环境理解。

这就是典型的计算机视觉对汽车自动驾驶仪的工作方式。 计算机接收实时镜头,分析其他汽车、道路和其他障碍物。

5 .模式识别模式识别是图像处理的一部分,涉及人工智能和机器学习。 图像处理用于找出图像中的各种图案和方面。 模式识别用于手写分析、图像识别、计算机辅助医疗诊断等。

6 .视频处理视频基本上是图像的快速移动。 各种图像处理技术被用于视频处理。 视频处理的一些方法包括去噪、图像稳定、帧率转换、细节增强等。

在Python图像处理入门中,让我们从Python的基本图像相关任务开始。 我们用PIL。

pil:https://pypi.org/project/pillow /

Python图像库用于各种图像处理任务。

安装了pipinstallPILlow并安装了pil后,就可以移动到代码中了。

首先,我们使用一些matplotlib函数。

importmatplotlib.imageasimgimportmatplotlib.pyplotaspltimportnumpyasnp % matplotlibinline读取以下图像: 这被命名为image1.jpg。

# readingjpgimageimg=img.im read (image1.jpg ) (PLT.im show (img ) ) ) ) ) ) )。

图像被读取。

# modifyingtheshapeoftheimagelum1=img [ :0]PLT.imshow[lum1]目前已修改图像的形状。

将其更改为“热”颜色贴图。

有关彩色图表的详细信息,请参阅此链接。 https://matplotlib.org/stable/tutorials/colors/color maps.html。

PLT.imshow(lum1,cmap='hot ' ) plt.colorbar ) )图像输出如下所示:

现在,我们试试不同的颜色图。

imgplot=PLT.imshow(lum1) img plot.set _ cmap (' nipy _ spectral ' )图像输出:

使用颜色贴图的原因通常是,在各种APP应用程序和用途中具有统一的颜色贴图非常有用。 阅读色图详细信息:在Matplotlib中选择色图https://matplotlib.org/stable/tutorials/colors/color maps.html。

现在,让我们来看看为什么图像被称为二维数组。

# datatypeoflum 1打印(type (lum1) )输出: class 'numpy.ndarray '

打印(lum1) [[ 92 91 89 … 169 168 16

9]

[110 110 110 … 168 166 167]

[100 103 108 … 164 163 164]

[ 97 96 95 … 144 147 147]

[ 99 99 98 … 145 139 138]

[102 102 103 … 149 137 137]]

这些点只是为了表明它们之间还有更多的数据点。但是可以肯定的是,所有数据都是数字数据。

让我们找出数组的大小。

len(lum1)

输出:320

len(lum1[300])

输出:658

这为我们提供了图像的像素数和尺寸:320*658。

我们稍后也会验证这一点。

现在,我们使用 PIL。

from PIL import Image

我们将使用这个图像文件,命名为:people.jpg。

img2 = Image.open('people.jpg')plt.imshow(img2)

图像被读取。

现在,我们调整图像大小。

img2.thumbnail((50, 50), Image.ANTIALIAS)  # resizes image in-placeimgplot = plt.imshow(img2)

imgplot1 = plt.imshow(img2, interpolation="nearest")

imgplot2 = plt.imshow(img2, interpolation="bicubic")

但是,为什么我们在图像处理中故意模糊图像?通常对于模式识别和计算机视觉算法,如果图像非常清晰,处理起来就会很困难。因此进行模糊处理以使图像平滑。模糊还可以使图像中的颜色过渡从一侧到另一侧更加平滑。

现在,让我们验证我们之前处理过的汽车图像的尺寸。

#some more interesting stufffile='image1.jpg'with Image.open(file) as image:     width, height = image.size #Image width, height is be obtained

这些也是我们之前得到的维度。所以我们可以得出结论,图像是320*658。

让我们也尝试旋转和转置图像。

#Relative Path img3 = Image.open("image1.jpg")  #Angle given img_rot= img3.rotate(180)  #Saved in the same relative location img_rot.save("rotated_picture.jpg")

这是旋转后的图像。

#transposing image  transposed_img = img3.transpose(Image.FLIP_LEFT_RIGHT)#Saved in the same relative location transposed_img.save("transposed_img.jpg")

这是转置后的图像。

尾注

图像处理有各种重要的应用,随着时间的推移,方法和过程也会得到改进。

☆ END ☆

如果看到这里,说明你喜欢这篇文章,请转发、点赞。微信搜索「uncle_pn」,欢迎添加小编微信「 mthler」,每日朋友圈更新一篇高质量博文。

扫描二维码添加小编↓

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。