炒鸡详细的图像原理以及成像原理讲解,不仅仅是python
一个OpenCV小白的自我成长之路(^_*)

1.光——可见光
我们日常见到的光五颜六色,赤橙黄绿青蓝紫,谁持彩练当空舞。不好意思,情不自禁啊,完全是我这该死的才华无处安放,自觉而来。我们见到的颜色有,赤橙黄绿蓝靛紫,那这个颜色怎么来的呢。我们日常见的太阳光是白色,其实并不是真正的白色,而是各种各样的颜色在其中,最后呈现出来的结果。你可能会问,那叶子是绿色的,你能讲讲原因吗?这样的,我们要看到一种东西的颜色,是需要这个东西或物品能发光或者反射光到我们的眼中,然后通过瞳孔视网膜神经传到我们的大脑。而当太阳光照射到叶子上的时候,叶子会吸收大部分其他颜色的光主要反射绿光,然后这个绿光经过我们的看到的绿色。其他也是一样。而这些,我们看得见的光称作可见光,太阳光中还有一些我们看不到,譬如红外线,紫外线等等。
2.三原色
颜色由一个十六进制符号来定义,这个符号由红色、绿色和蓝色的值组成(RGB)。每种颜色的最小值是0(十六进制:#00)。最大值是255(十六进制:#FF)。关于RGB的颜色设定,遵循了“色光三原色”(也叫做加法三原色)。三原色就意味着由这三种颜色调和可以变化出其他的各种颜色,比较常用的有:红+绿=黄,红+蓝=紫,绿+蓝(靛)=浅蓝,无红+无绿+无蓝=黑(#000000)红+绿+蓝=白(#ffffff),这是由于光线叠加,叠加的色光越多,光线越亮,所以呈白色,就如初中物理中的三棱镜实验,白光可以色散成七色光。

色光三原色


与色光三原色相对应的三原色叫做颜料三原色(也叫做减法三原色),这三种原色分别是红,黄,蓝(品红,黄,青,后文详述)。同理,由这三种颜色的颜料混合可以得到其他各种颜色的颜料。我们看到印刷的颜色,实际上都是看到的纸张反射的光线,比如我们在画画的时候调颜色,也要用这种组合。颜料吸收光线,而不是将光线叠加,因此颜料的三原色就是能够吸收RGB的颜色,为黄、品红、青,(CMY),他们就是RGB的补色。把黄色颜料和青色颜料混合起来,因为黄色颜料吸收蓝光,青色颜料吸收红光,因此只有绿色光反射出来,这就是黄色颜料加上青色颜料形成绿色的道理。

颜料三原色
这一段参考博文:点击这里链接

3.电脑中图片
有前面的知识。我们就知道,我们看到的电脑电视的颜色是属于色光三原色,也就是需要发光,颜色为红绿蓝——RGB.一张图由多个像素点组成,譬如是553的图片,5*5代表图片有5行5列的像素点,*3表示色深是3,即有红绿蓝。譬如下图的三维矩阵为


数组开头有 [[[ 即3个 [ 表示是一个3维矩阵,数组中的最内层,第一行中

表示一个像素点的数值,其中188表示红色R的亮度值(亮度值前面讲过哈,亮度值从0-255,8byte表示)71表示绿色G的亮度值,38表示蓝色B的亮度值,最终呈现的颜色为下图中的第一个格子颜色棕褐色。

第二个像素点的值为

红色R为亮度254,绿色G的亮度值是113,蓝色的亮度值是0,最后呈现出来的颜色是橙黄色。以此类推。所以,每一个像素点是由一个1行3列(1*3)的数值表示。

第二层矩阵表示的是图片中的第一行的五个像素点的值,整个3维的Tensor则表示整副图的像素组。这样形成了一个3维数组和图片的对应关系。
本文参考博文:点这里可以看看

4.成像原理
这个我们通俗理解一下,打个比方4层纸,放在桌子上,从上往下,编号分别为(0,b),(1,g),(2,r),3,最底层也就是第4张编号为3的纸负责发光,第三张编号为(2,r)的纸负责透过红光,第二张编号为(1,g)的纸负责透过绿光,第一张编号为(0,b)的纸负责透过红光,然后根据这三色光的亮度不一样,最后呈现出来的就是五颜六色的混合光。其中光的亮度从0-255,0表示不透光即显示黑色,255表

示最亮。而灰色是一种混合色,公式如下:

通常cv2.Color_BGR2GRAY,作灰度变换的时候,就是用的这各公式。

嗯,差不多啦!还有不懂的老实人吗?要是还不懂,可以留言,看到了我会回答你的,嘿嘿。

Opencv或python中图像与三维数组原理相关推荐

  1. 使用OpenCV和Python从图像中提取形状

    Welcome to the first post in this series of blogs on extracting features from images using OpenCV an ...

  2. python 图像与三维数组

    图像与三维数组 比如拿到一个PIL的图像,先转成ndarray类似三维数组,这样方便我们取RGB的数值,大概长这样: 一个像素点有3个取值,就是有3个元素的一维数组. 分辨率表示为m*n个像素点,像素 ...

  3. opencv for python的图像梯度算子以及canny边缘检测

    opencv for python的图像梯度算子以及canny边缘检测 一.图像梯度算子: 二.Canny边缘检测(一个多级边缘检测算法): 一.图像梯度算子: 1.概念简介(部分引自百度百科): 图 ...

  4. 颜色空间以及如何在OpenCV和Python中使用它们

    It may be the era of deep learning and big data, where complex algorithms analyze images by being sh ...

  5. OpenCV for Python之图像RIO与泛洪填充

    OpenCV for Python之图像RIO与泛洪填充 1 ROI与泛函填充 2 ROI 3 泛洪填充 Opencv4 官方文档 : https://docs.opencv.org/4.2.0/ O ...

  6. python将二维和三维数组保存到txt文件

    首先要保证在你的python环境中装了numpy包,接下来我们要使用其中的两个函数用于存储和加载数组:np.savetxt()和np.loadtxt(). 二维数组的保存和获取 import nump ...

  7. 使用OpenCV和Python计算图像的“彩色度”

    使用OpenCV和Python计算图像"彩色度" 1. 效果图 2. 炫彩度量方法是什么? 3. 源代码 参考 你是否尝试过计算每个图像的炫彩值,并根据炫彩值对自己的图像数据集进行 ...

  8. python中2d_【IT专家】如何在Python中复制一个2D数组?(复制)

    本文由我司收集整编,推荐下载,如有疑问,请与我司联系 如何在 Python 中复制一个 2D 数组? ( 复制 ) 如何在 Python 中复制一个 2D 数组 ?( 复制 )[ 英 ]How to  ...

  9. Python中利用numpy将数组(矩阵)存成csv文件,将csv文件读取为数组(矩阵)

    Python中利用numpy将数组(矩阵)存成csv文件,将csv文件读取为数组(矩阵) 本博客转载自:https://blog.csdn.net/vernice/article/details/50 ...

最新文章

  1. 绝了!这款工具让SpringBoot不再需要Controller、Service、DAO、Mapper!
  2. 交换机的linux测试脚本,更新网络设备巡检脚本,各位大神可以看看,如有不足,请指正!...
  3. 扩展欧几里得算法_扩展欧几里得递推算法
  4. 全面开启线上参会报名!CNCC线上与现场参会者共赴技术盛宴!
  5. “tel.xls.exe病毒”解决方法
  6. STM32 电机教程 19 - 基于ST MC Workbench 单电阻FOC
  7. Linux中su 和 su -的区别
  8. 有关正则表达式的一些用法总结
  9. c语言括号匹配输出个数字,C程序括号匹配检查(带详细注释)
  10. apache缺省banner_NSFOCUS建议您采取以下措施以降低威胁: * 修改源代码或者配置文件改变SSH服务的缺省banner。...
  11. OpenCV颜色空间——HLS颜色空间
  12. Skiing POJ 3037 很奇怪的最短路问题
  13. java dem数据格式解析_ArcGIS读取dem格式数据
  14. windows xp sp3 原版收藏。
  15. 2021年道路运输企业安全生产管理人员考试内容及道路运输企业安全生产管理人员考试报名
  16. html复选框变蓝,更改html复选框的背景颜色
  17. 测试英语小软件,儿童学英语软件哪个好,亲测这四款很不错
  18. 产业园区招商策划方案思路
  19. NLP情感分析基础知识
  20. WordCAT 一款功能强大、免费共享的Word文档计算机辅助翻译软件

热门文章

  1. Python 利用Baostock 下载股票代码,写入Mysql数据库
  2. 有ip可以建网站服务器,云服务器有独立ip吗?
  3. 帝国php被注入,帝国CMS(EmpireCMS) v7.5 代码注入分析(CVE-2018-19462)
  4. 近千首流行音乐MP3直接下载
  5. ffmpeg音频采样率转换
  6. el tree 双击事件
  7. Unity 3D 中关于材质(Material)的具体说明
  8. 云智信短信验证码php示例
  9. OM | 浅谈收益管理与动态定价
  10. Mac使用Microsoft-Remote-Desktop-for-Mac远程桌面Windows