0.图像分类

1.黑白照片(二值照片)->图像中的颜色只有黑和白(0、255)

2.灰度照片->图像颜色取值在0~255,单通道

3.彩色照片->图像颜色取值在0~255,三通道

1.彩色图像转换为灰度图像

通过imread可以将彩色照片转化成灰度照片,其中灰度照片本质上是一个二维矩阵,彩色照片本质上是一个三维矩阵,因此灰度照片生成的原理是将彩色照片的B、G、R通道以一定的权重组合进行加法运算得到的,其计算公司参考如下:

测试代码:

    # 灰度照片img_gray = cv2.imread(r'C:\Users\Nobody\Desktop\img1.png', 0)cv2.imshow('img_gray',img_gray)print(f'gray shape:{img_gray.shape}')# 彩色照片img_bgr = cv2.imread(r'C:\Users\Nobody\Desktop\img1.png', 1)cv2.imshow('img_bgr', img_bgr)print(f'bgr shape:{img_bgr.shape}')# 通过Y=0.299*R+0.587*G+0.114*B计算r,g,b=cv2.split(img_bgr)img_gray2=0.299*r+0.587*g+0.114*bimg_gray2=img_gray2.astype('uint8')cv2.imshow('img_gray2',img_gray2)print(f'img_gray2 shape:{img_gray2.shape}')

结果输出:

gray shape:(768, 1366)
bgr shape:(768, 1366, 3)
img_gray2 shape:(768, 1366)

2.灰度图像转换为彩色图像

要想将灰度图像转换为彩色图像,本质上就是将一个二维矩阵,转换成一个三维矩阵,简单的想法是彩色图像的B、G、R通道照片均为灰度照片。计算公式如下:

测试代码:

    # 灰度照片img_gray = cv2.imread(r'C:\Users\Nobody\Desktop\img1.png', 0)cv2.imshow('img_gray',img_gray)print(f'gray shape:{img_gray.shape}')# 彩色照片new_img=cv2.merge([img_gray,img_gray,img_gray])cv2.imshow('new_img',new_img)print(f'new_img shape:{new_img.shape}')

结果输出:

gray shape:(768, 1366)
new_img shape:(768, 1366, 3)

彩色图像和灰度图像之间的转换相关推荐

  1. RGB图像,索引图像,二值图像,灰度图像之间的转换

    %% 将索引图像转换为RGB图像 % 将索引图像转换为其他图像时,需要提供 % 索引图像的数据和调色板 % 将其他图像转换为索引图像时,需要设置 % 数据和调色板 clear clc [X,map]= ...

  2. Python OpenCV 彩色图像与灰度图像的转换

    今天是持续写作的第 41 / 100 天. 如果你有想要交流的想法.技术,欢迎在评论区留言. 想不到,今天学习的竟然还是彩色图像与灰度图像的转换.经过前面的学习,你们和我一样,有没有掌握 2 种彩色图 ...

  3. 彩色图像转灰度图像原理python

    文章目录 彩色图像转灰度图像 数字图像 彩色图像 灰度图像 转换 彩色图像转灰度图像 数字图像 现在我们所接触到的图像绝大多数都是数字图像,图像数字化后,每个像素点就可以看作是一个小方格,每个小方格里 ...

  4. 时间不同单位之间的转换

    在观察仿真波形的时候,经常会出现微妙,毫秒,皮秒之间的转换,出现过错误,每次记不清楚的时候还要重新查资料,现总结如下. 秒(second)是国际单位制中时间的基本单位,符号是s.有时也会借用英文缩写标 ...

  5. java类型转换面试题_JavaSE:数据类型之间的转换(附常见面试题)

    数据类型之间的转换 分为以下几种情况: 1)低级到高级的自动类型转换: 2)高级到低级的强制类型转换(会导致溢出或丢失精度): 3)基本类型向类类型转换: 4)基本类型向字符串的转换: 5)类类型向字 ...

  6. java 嵌套对象转xml_Gson对Java嵌套对象和JSON字符串之间的转换 | 学步园

    JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式,具有良好的跨平台特性.近几年来已经和XML一样成为C/S架构中广泛采用的数据格式.有关JSON的更多知识, ...

  7. ROS与PCL中点云数据之间的转换

    此为文章初稿还没有完善,应该还有一些问题,等待后面有时间再继续更新,原创文章,未经允许,请勿转载!!! 首先介绍在PCL库中经常使用的两种点云之间的转换,这里将根据工程中的经验,从代码层面举例分析如何 ...

  8. 日期与unix时间戳之间的转换C++实现

    之前在https://blog.csdn.net/fengbingchun/article/details/107023645 中介绍过gmtime和localtime的区别,这里介绍下日期与Unix ...

  9. java怎么改变数据类型_java数据类型之间的转换,是怎么回事啊? - 收获啦

    1.数据类型的分类 2.比较数据类型之间的字节大小 1字节=8位 . 3.转换中的知识点 *java中整数类型默认的int类型:小数类型默认的double: *String的字符串转化为char类型时 ...

最新文章

  1. 程序员霸榜 2020 年十大高薪岗位,不料幸福度却垫底了!
  2. Next-best-action marketing简介
  3. indesign2020突然闪退_Adobe Photoshop 2020打不开,总是闪退,罪魁祸首在这里
  4. [MATLAB]MATLAB中SIMULINK常用命令表
  5. 如何通过ildasm/ilasm修改assembly的IL代码
  6. jekins构建通知邮件配置及邮件附件设置,jenkins构建通知邮件没有RF的log和report文件...
  7. matlab计算遥感影像最“佳”指数因子OIF
  8. LPTSTR CString 相互转换
  9. 《概率论与数理统计》(浙大第四版)第六章总结笔记(纯手写)
  10. 无刷直流电机四象限matlab pudn,一种无刷直流电机四象限PWM调制方式的分析和设计...
  11. Reading Note(3)——基于FPGA的动态可重构特性探索新型加速器架构
  12. STC宏晶单片机初始开发教程
  13. Node.js学习笔记(五)——WebSocket
  14. 华为2288H V5服务器⽆法开机
  15. Layer 开启与关闭加载层
  16. python实现论文查重系统_Python实现的检测网站挂马程序
  17. sklearn 中的 make_blobs 的参数解释
  18. C++Qt开发——SMTP协议
  19. linux shell 判断一个文件是不是链接文件
  20. java循环练习题及答案_循环练习题及答案

热门文章

  1. 移动收款功能(未完成,无参考价值)
  2. (遇到问题)鼠标右键卡住且一直显示转圈
  3. python比赛积分类算法题_python常用算法题
  4. 社工利器--setoolkit之钓鱼攻击
  5. 51单片机PWM源码讲解 小车调速 呼吸灯等应用
  6. DEAP Example: One Max Problem
  7. 《scikit-learn机器学习》决策树③ -泰坦尼克号幸存者预测【思路+代码】
  8. Redis报错Java.net.UnknownHostException的解决办法
  9. 计算机页面不稳定怎么办,电脑网速不稳定怎么解决_电脑网速时快时慢的处理方法...
  10. Python机器学习:逻辑回归008OvR与OvO