AI图像基础知识01

作者: Surpassme

    目前人工智能A rtificial Intelligence主要分为两大分支:

  • 计算机视常见:C omputer Vision,简称CV

  CV主要是研究如何让机器看懂世界的一种技术,通过各种光学传感器来代替人眼对目标对象进行识别,跟踪和检测,使机器能够处理输入的各种图像和视频。

  • 自然语言处理:N atural L anguage Processing,简称NLP

  NLP主要是研究如何机器读懂世界的一种技术,最终执行如语言翻译、智能客服等。

    因为目前所从事的项目都是基于CV的,所以来总结一下CV的相关知识。从上述简介可以看CV是要让机器看懂世界,那么最直观的就是传递图像或视频给机器。那么们就需要了解图像和视频的基本知识,如下所示: 图像基础知识

    说到图像,最直观的就是一张静态图片。而图像又可以分为位图图像矢量图像。 位图图像

    位图图像又称点阵图像栅格图像,是指由很多个点按照指定的颜色和一定的顺序组成的矩形网络。当一张位图持续放大到一定比例后,便可以很清楚看到每个矩形网格。如下所示:

01位图示例.png

常见的图像格式扩展名为:JPG、BMP、PNG、JPEG等

矢量图像

    矢量图也称为面向对象的图像或绘图图像,通常由点、直线或多边形等基于数学对象的几何图表示图像。其最大的特点是放大图像后不会失真且和分辨率无关。如下所示:

02矢量图示例.png

常见的矢量图格式扩展名为:ai,cdr等。

图像处理的基本概念

  • 像素: 组成图像的最基本单元

    像素(pixel,简写为px)这个概念,也可以看成是Picture和Element两个单词的头组成,如下所示:

pix~picture~ + el~element~ = pixel

  • 像素尺寸

    位图图像长度和高度两个方向上的像素数目

    们常说的图片大小其实就是说这张图像的长和高两个方向各有多少个像素点,如图片大小为1920*1080,则意味着长度方向上有1920个像素点,高度方向上有1080个像素点,则总的像素点为:1920*1080=2073600,也就是们常说的这个图像是200万像素级别。

  • 图像分辨率

    图像分辨率PPI(P ixel P er Inch)指的是每英寸像素数。尺寸相同的情况下,分辨率越高,像素点就越小,图像越清晰。

    例1*1英寸的图像,50PPI,则像素总数为:50*50=2500

  • 文件大小

    文件所占用存储空间的大小

    常见图像文件格式

  • PSD

    PhotoShop特有的图像文件格式,可记录图层、通道、颜色模式,参考线及文件信息属性,占用空间较大

  • JPEG

    一种有损压缩文件格式,设置了12个压缩级别。它是将人眼很难察觉的冗余图像和彩色数据去除。因此图像占用存储空间较小且图像品质受到很少影响。该格式支持RGB、灰度等颜色模式。但不支持Alpha通道和图层。

  • GIF

    一种有损压缩文件格式,丢失的不是图像的像素,而是图像的色彩。常用于保存为网页数据传输的图像文件,缺点是不能存储超过256色的图像,不支持图层和Alpha通道

  • PNG

    该图像格式吸取了GIF和JPEG的优点,既有丰富的色彩和较高的压缩比,又支持透明图像的制作,可边下载边显示,但不支持动画。

  • BMP

    Windows中的标准图像格式,支持RGB、索引颜色、灰度和颜色模式,但不支持Alpha通道

    色彩属性

  • 色相(Hue)

    指色彩的种类和名称,如红、橙、黄…. 取值范围 0°~360°,每个角度可以代表一种颜色。常以红色为0度(360度);黄色为60度;绿色为120度;青色为180度;蓝色为240度;品红色为300度。而们描述某一物体的颜色时,即是以色相进行描述的。

03色相.png

  • 饱各度(Saturation)

    常用于表达颜色的强度或纯度,即用 0%(纯灰色) 至 100%(完全饱和) 的值描述了相同色相下色彩纯度的变化。数值越大,颜色中的灰色越少,颜色越鲜艳,呈现一种从灰度到纯色的变化。一句话总结就是颜色中的灰色量含量的高低.

04饱和度.png

  • 亮度(Luminance)

    常用于表示颜色的相对明暗程度,其作用是控制色彩的明暗变化。同样使用了 0%(黑色) 至 100%(白色) 的取值范围。数值越小,色彩越暗,越接近于黑色;数值越大,色彩越亮,越接近于白色。一句话总结就是颜色中混合了多少白色或黑色

05亮度.png

  • 对比度

    指不同颜色之间的差异。对比度越大,两种颜色之间的反差也就越大,反之颜色越相近。如提高一张灰度图像的对比度,则会使图像变得黑白鲜明,而降低对比度时,图像中不同部分的颜色则趋于相同,最终会使整张图像变为灰色。

    色彩模式

  • RGB色彩模式

    色彩模式是指用数据表示颜色的一种表示方法。在计算机领域内R ed、G renn、Blue 称之为基色分量

06RGB.png

    通过这三种基色分量依据不同的比例可以调和出不同的颜色。在计算机领域中,RGB的取值为0~255,共256(28)个值。如下所示在Windows自定义颜色

07自定义颜色.png

通过RGB混合的方式,们可计算出所表示的总颜色为2563=16777216,这即是大家常见的1600万色,而每一种可以用8bit来表示,所以表示三种颜色需要占用3*8=24bit,而这个颜色已经超出人眼能够识别的范围,故又称之为真彩色。

  • CMYK色彩模式

    CMYK是模拟印刷油墨的基本四色表示,以纯青色、洋红色、黄色、黑色去调配颜色,这种方式是以打印纸上的油墨的光吸收特性为基础的印刷模式。因此彩色印刷叫作四色印刷。

C:Cyan 青色
M:Magenta 品红色
Y:Yellow 黄色
K:blacK 黑色

08CMYK.png

  • 灰度模式

    指用单一色调表示图像,一个像素的颜色可以用8bit来表示,因此灰度模式的范围为0~255共256个灰度级别,最高为纯黑、最低为纯白,即是黑->灰->白的过渡。

灰度模式是不可逆的,一旦转换就会丢失颜色信息。
在RGB模式中,三个值相等的时候显示的就是灰度色彩模式

09灰度模式.png

  • Lab模式

    是光度分量和两个色度分量组成。

L:代表亮度,范围0~100%,记录图像的细节,但不记录颜色
A:从绿到红的光谱变化,范围在-120~120
B:从蓝到黄的光谱变化,范围-120~120

10LAB模式.png

  • 位图模式

    彩色图像去掉彩色信息就变为灰度模式,那灰度模式去掉灰度信息,就只剩下黑与白,这种情况下,们称之为位图模式。

11位图模式.png

  • 索引模式

    根据图像中的像素来查找颜色,将查找的颜色定义为一个颜色表,用以存放并索引图像 中的颜色。索引图像最多只可包含256种颜色,因此容易出现失真的情况。 示例代码

    以上总结了这么多,下面们来使用OpenCV动手实践一下,示例代码如下所示:

import cv2
import numpy as np
 原始图片
imgPath=r"F:\编程资料\编程工程\OpenCV学习笔记\04其他\01测试图片\TestImage.jpg"
 保存为灰度图片
saveImgAsGrayPath=r"F:\编程资料\编程工程\OpenCV学习笔记\04其他\01测试图片\SaveAsGrayImg.png"
 保存为LAB模式图片
saveImgAsLabPath=r"F:\编程资料\编程工程\OpenCV学习笔记\04其他\01测试图片\SaveAsLABImg.png"
 保存为位图图片
SaveImgAsBitPath=r"F:\编程资料\编程工程\OpenCV学习笔记\04其他\01测试图片\SaveAsGrayBit.png"
 以彩色模式读入
img=cv2.imdecode(np.fromfile(imgPath,dtype=np.uint8),cv2.IMREAD_COLOR)
 保存灰度图像
gray=cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
cv2.imencode(".jpg",gray)[1].tofile(saveImgAsGrayPath)
 保存为LAB模式
lab=cv2.cvtColor(img,cv2.COLOR_BGR2LAB)
cv2.imencode(".jpg",lab)[1].tofile(saveImgAsLabPath)
 转换为位图模式
binaryImg=cv2.imdecode(np.fromfile(saveImgAsGrayPath,dtype=np.uint8),cv2.IMREAD_GRAYSCALE)
_,binary=cv2.threshold(binaryImg,100,255,cv2.THRESH_BINARY)
cv2.imencode(".jpg",binary)[1].tofile(SaveImgAsBitPath)

最终生成的结果如下所示:

12示例代码生成图.png 本文同步在微信订阅号上发布,如各位小伙伴们喜欢的文章,也可以关注的微信订阅号:woaitest,或扫描下面的二维码添加关注:

![MyQRCode.jpg]

原文创作:Surpassme

原文链接:https://www.cnblogs.com/surpassme/p/11879387.html

文章列表

更多推荐

更多
  • Pharo敏捷人工智能-第一部分:神经网络
    Apache CN

  • Pharo敏捷人工智能-第二部分:遗传算法
    Apache CN

  • Pharo敏捷人工智能-# 第三部分:神经进化 第三部分:神经进化
    Apache CN

  • Python人工智能-20 20 将卷积神经网络用于深度学习 在本章中,我们将学习深度学习和**卷积神经网络**(**CNN**)。 在过去的几年中,CNN 取得了很大的发展势头,尤其是在图像识别领域。 我们将讨论 CNN 的架构以及内部使用的层的类型。 我们将
  • Python人工智能-22 通过强化学习创建智能体 22 通过强化学习创建智能体 在本章中,我们将学习**强化学习**(**RL**)。 我们将讨论 RL 的前提。 我们将讨论 RL 和监督学习之间的区别。 我们将通过一些真实的 RL 实例来了解 RL 如何以各种形式表现出来。 我们将
  • Python人工智能-23 人工智能和大数据 23 人工智能和大数据 在本章中,我们将学习什么是大数据以及如何在人工智能的背景下使用大数据技术。 我们将讨论大数据如何帮助加速机器学习流程。 我们还将讨论使用大数据技术什么时候是一个好主意,何时使用它们是过时的,并通过一些示例来加深
  • Python人工智能-21 循环神经网络和其他深度学习模型 21 循环神经网络和其他深度学习模型 在本章中,我们将学习深度学习和**循环神经网络**(**RNN**)。 像前几章所介绍的 CNN 一样,RNN 在过去几年中也获得了很大发展。 就 RNN 而言,它们在语音识别领域被大量使用。 当
  • Python人工智能-Python 人工智能中文版 文章列表,Python人工智能-0 前言,Python人工智能-1 人工智能简介,Python人工智能-10 启发式搜索技术
  • Python人工智能-16 聊天机器人 16 聊天机器人 在本章中,我们将学习聊天机器人。 我们将了解它们是什么以及如何使用它们。 您还将学习如何创建自己的聊天机器人。 我们将涵盖以下主题: * 聊天机器人的未来 * 聊天机器人的现状 * 基本的聊天机器人概念
  • Python人工智能-17 序列数据和时间序列分析 17 序列数据和时间序列分析 在本章中,我们将学习如何构建序列学习模型。 为此,我们将涵盖许多主题,以使我们更好地掌握如何构建和使用这些模型。 我们将学习如何处理 Pandas 中的时间序列数据。 我们将了解如何分割时间序列数据并对其
  • 近期文章

    更多
    文章目录

      推荐作者

      更多