介绍

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

了解图像实际上是什么

图像基本上是二维信号。信号函数是 f(x,y),其中 x 和 y 在某个点的值生成该点的像素。图像基本上是一个由 0 到 255 之间的数字组成的二维数组。

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

图像处理帮助

  1. 改进我们存储的数字信息。

  2. 使图像处理自动化。

  3. 更好的图像优化,实现高效的存储和传输。

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

图像处理用途

1.  图像校正、锐化和分辨率校正

通常,我们希望我们可以将旧图像做得更好。这在今天是可能的。缩放、锐化、边缘检测、高动态范围编辑都属于这一类。所有这些步骤都有助于增强图像。大多数编辑软件和图像校正代码都可以轻松完成这些操作。

2. 编辑应用程序和社交媒体的过滤器

如今,大多数编辑应用程序和社交媒体应用程序都提供过滤器。

以上是原始图像和过滤后的图像的示例。滤镜使图像看起来更具视觉吸引力。滤镜通常是一组函数,可以更改图像中的颜色和其他方面,使图像看起来不同。过滤器是图像处理的一个有趣应用。

3. 医疗技术

在医学领域,图像处理用于各种任务,如 PET 扫描、X 射线成像、医学 CT、紫外线成像、癌细胞图像处理等等。将图像处理引入医疗技术领域极大地改善了诊断过程。

左边的图像是原始图像。右边的图像是经过处理的图像。我们可以看到处理后的图像要好得多,可以用于更好的诊断。

4. 计算机/机器视觉

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

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

5. 模式识别

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

6. 视频处理

视频基本上是图像的快速移动。视频处理中使用了各种图像处理技术。视频处理的一些方法是噪声去除、图像稳定、帧速率转换、细节增强等等。

Python 图像处理入门

让我们从 Python 中的一些基本图像相关任务开始。我们将使用 PIL。

PIL:https://pypi.org/project/Pillow/

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

安装

pip install pillow

安装了PIL后,我们现在可以转到代码了。

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

import matplotlib.image as img
import matplotlib.pyplot as plt
import numpy as np
%matplotlib inline

将读取以下图像。它被命名为 image1.jpg。

# reading jpg image
img = img.imread('image1.jpg')
plt.imshow(img)

图像被读取。

# modifying the shape of the image
lum1 = img[:, :, 0]
plt.imshow(lum1)

现在修改了图像形状。

现在我们将其更改为“热”颜色图。

要了解有关颜色图的更多信息,请访问此链接:https://matplotlib.org/stable/tutorials/colors/colormaps.html。

plt.imshow(lum1, cmap ='hot')
plt.colorbar()

图像输出看起来:

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

imgplot = plt.imshow(lum1)
imgplot.set_cmap('nipy_spectral')

图像输出:

使用颜色图的原因是,通常在各种应用程序和用途中,拥有统一的颜色图会有所帮助。阅读有关颜色图的更多信息:在 Matplotlib 中选择颜色图 https://matplotlib.org/stable/tutorials/colors/colormaps.html。

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

#data type of lum1print(type(lum1))

输出:<class 'numpy.ndarray'>

print(lum1)

[[ 92 91 89 … 169 168 169]

[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-place
imgplot = plt.imshow(img2)

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

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

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

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

#some more interesting stuff
file='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」,每日朋友圈更新一篇高质量博文。

扫描二维码添加小编↓

一文总结Python数字图像处理基础知识与前沿应用相关推荐

  1. 数字图像处理基础知识之二

    空域增强技术: 基础知识1: 定义二维函数f(x,y),其中x,y是空间坐标,f(x,y)是点(x,y)的幅值. 灰度图像是一个二维灰度(亮度)函数f(x,y):彩色图片是由三个二维灰度函数f(x,y ...

  2. 数字图像处理 采样定理_数字图像处理基础知识总结

    第 1 页 第一章 数字图像处理概论 * 图像 是对客观存在对象的一种相似性的.生动性的描述或写真. * 模拟图像 空间坐标和明暗程度都是连续变化的.计算机无法直接处理的图像 * 数字图像 空间坐标和 ...

  3. 数字图像处理基础知识

    1)图像处理的分类: 数字图像处理领域,图像分为模拟图像和数字图像:(计算机处理的图像都是数字图像) 颜色图像分为:彩色图像,灰度图像,黑白图像 2)数字图像的产生: 数码相机直接拍摄可得:图像采集卡 ...

  4. Java数字图像处理基础知识 - 必读

    转载自:http://blog.csdn.net/jia20003/article/details/7279667 写了很多篇关于图像处理的文章,没有一篇介绍Java 2D的图像处理API,文章讨论和 ...

  5. 数字图像处理基础知识总结

    8位位图,像素读取需要unsinged char类型,因为是0-255 loadBMP 和readBMP两个函数是区别 HANDLE CdlgcallDlg::LoadBMP(LPCTSTR lpFi ...

  6. 【遥感数字图像处理】基础知识:第二章 遥感知识回顾、遥感数字图像处理基础知识

  7. [Python图像处理] 三十四.数字图像处理基础与几何图形绘制万字详解(推荐)

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  8. [Python图像处理] 一.图像处理基础知识及OpenCV入门函数

    该系列文章是讲解Python OpenCV图像处理知识,前期主要讲解图像入门.OpenCV基础用法,中期讲解图像处理的各种算法,包括图像锐化算子.图像增强技术.图像分割等,后期结合深度学习研究图像识别 ...

  9. python图像处理基础知识(cv库函数说明)

    python图像处理基础知识,函数说明 目录 python图像处理基础知识,函数说明 1.处理照片(open_cv库) 1.1 cv2.imread('filepath',flags) 1.2 cv2 ...

最新文章

  1. Spring 注解之@RestController与@Controller的区别
  2. 201109080909
  3. JSP 中的Cookie
  4. 怎么样用vue ui来创建一个vue项目
  5. SAP UI5 视图如何使用工程里的 sample data 作为 JSON model 的数据源
  6. [vue] vue的is这个特性你有用过吗?主要用在哪些方面?
  7. 计算机服务重置,怎么重置电脑网络设置
  8. Chrome最新版本如何通过JS设置支持自动播放音频
  9. 传智播客java20套源码_Hanselminutes播客20
  10. 【增速】人工智能之计算机视觉工业领域落地一览
  11. Spring中过滤器和拦截器
  12. win10 系统 MySQL安装及修改密码
  13. Windows“控制面板”在哪?win10怎么打开控制面板(快捷方法)打开控制面板的多种方法都在这里
  14. 用Python解矩阵方程——Sympy模块
  15. 用gfortran编译C和Fortran
  16. 怎么转换视频格式,视频格式不符如何转换?
  17. 阿里云ACP云计算认证通过总结
  18. 正交投影与弱透视投影
  19. 随机信号处理笔记 - ING
  20. %3c?php+eval,callback噩梦:解析著名CMS框架Drupal SQL注入漏洞

热门文章

  1. 工业用地性质的房产可不可以买卖
  2. 2022年买哪个蓝牙耳机好?20款全球热门蓝牙耳机排行榜
  3. AUTOSAR CAN Dirver模块说明及ETAS ISOLAR A/B配置(1)--概述和功能描述
  4. 生活中常见物联网实例_最常见的物联网安全威胁有哪些
  5. PCIE-XPDMA-SGDMA调试笔记
  6. 良品铺子:金选年货礼盒里,装着“高端零食”的初心
  7. 贝壳采集器:途牛旅游网 信息采集
  8. 关于傻妞sillyGirl xdd机器人频繁掉线解决方法
  9. 组合钻床液压系统设计、自动取料机械手、自动化立体仓库堆垛机设计、越野车双横臂式独立悬架设计、轴用弹性挡圈装配机的设计、BL200链板输送线、波状挡边带式输送机、加热炉装料悬臂辊道图纸、冷藏车……
  10. 还不会正则表达式? 放心 我会出手(万字教学)