一、彩色图像文件转换为灰度文件

(一)使用opencv

1.通过cvtColor库将其转为灰度
(1)代码

import cv2 as cv
img = cv.imread('C:/Users/86199/Pictures/lena/lena.jpg',1)
img_1 = cv.cvtColor(img,cv.COLOR_BGR2GRAY)
cv.imshow('gray',img_1)
cv.imshow('colour',img)
cv.waitKey(0)

(2)结果


2通过分离RGB三个通道得到三个通道的灰度图
(1)代码

import cv2 as cv
from matplotlib import pyplot as plt
img = cv.imread('C:/Users/86199/Pictures/lena/lena.jpg',1)
#cv2.imread读取图片格式是BGR
b,g,r = cv.split(img)  #这个地方将图像拆分,把彩色图像分为3个颜色
plt.figure(figsize=(10,8))
color = [b,g,r]
img_2 = cv.merge([r,g,b])  #这个地方我把bgr格式的图片转成了rgb,然后显示的时候会变成正常的彩色
for i in range(3):plt.subplot(2,2,i+1)plt.imshow(color[i],'gray')plt.subplot(2,2,4)plt.imshow(img_2)
plt.savefig('./三通道灰度.png')
plt.show()

(2)运行结果

(二)不使用opencv
1.代码

from PIL import Image
I = Image.open('C:/Users/86199/Pictures/lena/lena.jpg')
L = I.convert('L')
L.show()

2.运行结果

二、将彩色图像转化为HSV、HSI 格式

(一)彩色图像转化为HSV格式
1.HSV介绍

HSV 格式: H 代表色彩,S 代表颜色的深浅,V 代表着颜色的明暗程度。
HSV 颜色空间可以很好地把颜色信息和亮度信息分开,将它们放在不同的通道中,减小了光线对于特定颜色识别的影响。
HSV (色相hue, 饱和度saturation, 明度value), 也称HSB
(B指brightness) 是艺术家们常用的,因为与加法减法混色的术语相比,使用色相,饱和度等概念描述色彩更自然直观。HSV
是RGB色彩空间的一种变形,它的内容与色彩尺度与其出处——RGB色彩空间有密切联系。对应的媒介是人眼。
在 OpenCV 视觉库中,HSV 的数值被做了一些小的修改, H 的范围调整为 0~180,S 和 V 的范围为 0~255。

当我们采用 HSV 的图像阈值得到某一种颜色时,可以参考颜色分布表,先将 H 通道对应的颜色找到。表格中,每种颜色都对应了一个区间。


2.代码

# open-cv library is installed as cv2 in python
# import cv2 library into this program
import cv2 as cv# read an image using imread() function of cv2
# we have to  pass only the path of the image
img = cv.imread('C:/Users/86199/Pictures/lena/lena.jpg',1)# displaying the image using imshow() function of cv2
# In this : 1st argument is name of the frame
# 2nd argument is the image matrixcv.imshow('original image',img)# converting the colourfull image into HSV format image
# using cv2.COLOR_BGR2HSV argument of
# the cvtColor() function of cv2
# in this :
# ist argument is the image matrix
# 2nd argument is the attribute
hsv = cv.cvtColor(img, cv.COLOR_BGR2HSV)# displaying the Hsv format image
cv.imshow('HSV format image',hsv)cv.waitKey(0)

3.运行结果

(二)彩色图像转化为HSI格式

1.HSI介绍
HSL (色相hue, 饱和度saturation, 亮度lightness/luminance),
也称HLS 或 HSI (I指intensity)
与 HSV非常相似,仅用亮度(lightness)替代了明度(brightness)。

人的视觉对亮度的敏感程度远强于对颜色浓淡的敏感程度,为了便于颜色处理和识别,人的市局系统经常采用HSI彩色空间,它比RGB空间更符合人的视觉特性。此外,由于HSI空间中亮度和色度具有可分离性,使得图像处理和机器视觉中大量灰度处理算法都可在HSI空间方便进行
2.代码

import cv2
import numpy as npdef rgbtohsi(rgb_lwpImg):rows = int(rgb_lwpImg.shape[0])cols = int(rgb_lwpImg.shape[1])b, g, r = cv2.split(rgb_lwpImg)# 归一化到[0,1]b = b / 255.0g = g / 255.0r = r / 255.0hsi_lwpImg = rgb_lwpImg.copy()H, S, I = cv2.split(hsi_lwpImg)for i in range(rows):for j in range(cols):num = 0.5 * ((r[i, j]-g[i, j])+(r[i, j]-b[i, j]))den = np.sqrt((r[i, j]-g[i, j])**2+(r[i, j]-b[i, j])*(g[i, j]-b[i, j]))theta = float(np.arccos(num/den))if den == 0:H = 0elif b[i, j] <= g[i, j]:H = thetaelse:H = 2*3.14169265 - thetamin_RGB = min(min(b[i, j], g[i, j]), r[i, j])sum = b[i, j]+g[i, j]+r[i, j]if sum == 0:S = 0else:S = 1 - 3*min_RGB/sumH = H/(2*3.14159265)I = sum/3.0# 输出HSI图像,扩充到255以方便显示,一般H分量在[0,2pi]之间,S和I在[0,1]之间hsi_lwpImg[i, j, 0] = H*255hsi_lwpImg[i, j, 1] = S*255hsi_lwpImg[i, j, 2] = I*255return hsi_lwpImg
if __name__ == '__main__':rgb_lwpImg = cv2.imread("C:/Users/86199/Pictures/lena/lena.jpg")hsi_lwpImg = rgbtohsi(rgb_lwpImg)cv2.imshow('lena.jpg', rgb_lwpImg)cv2.imshow('hsi_lwpImg', hsi_lwpImg)key = cv2.waitKey(0) & 0xFFif key == ord('q'):cv2.destroyAllWindows()

3.运行结果

数字图像与机器视觉基础补充(2)相关推荐

  1. 数字图像与机器视觉基础补充(2)--颜色转换+分割车牌

    录 一.彩色图像文件转灰度文件 1.1 使用opencv 1.1.1 通过cvtColor库将其转为灰度 1.1.2 通过分离RGB三个通道得到三个通道的灰度图 1.2 不使用opencv 二.将彩色 ...

  2. 数字图像与机器视觉基础补充(1)——区分位图和图像处理

    目录 一.图片转化 (1)原图 (2)转换为位图 (3)压缩率 二.区分位图 (1)16/32位位图对照 (2)256/16/单色位图对照 三.图片处理编程 (一)奇异函数分解(SDV) (二)用图像 ...

  3. 数字图像与机器视觉基础补充(1)

    一.比较不同位深度BMP文件 从网页上下载一张彩色图片,查看该图片信息,显示位深度24 通过电脑画图程序和PS软件,分别将该图片保存为 32位.16位彩色和256色.16色.单色的位图(BMP)文件. ...

  4. 【计算机视觉】数字图像与机器视觉基础

    一.位图文件分析 1. 什么是位图 位图图像(bitmap),亦称为点阵图像或栅格图像,是由称作像素(图片元素)的单个点组成的.这些点可以进行不同的排列和染色以构成图样.当放大位图时,可以看见赖以构成 ...

  5. 数字图像与机器视觉基础(2)

    一.OpenCV+Python车牌字符分割 车牌号检测大致分为以下四个部分: 1.车辆图像获取 2.车牌定位 3.车牌字符分割 4.车牌字符识别 处理原理: 车牌定位需要用到的是图片二值化为黑白后进c ...

  6. 数字图像与机器视觉基础2

    一.使用和不使用opencv将彩色图像转化为灰度图像 具体步骤 1.灰度转换:将彩色图片转换为灰度图像,常见的R=G=B=像素平均值. 2.高斯平滑和中值滤波:去除噪声. 3.Sobel算子:提取图像 ...

  7. 【机器视觉】整合:机器视觉基础知识汇总

    本文系鼎酷IOT部落今日头条号原创,转载请注明出处. 到如今,中国已经成为世界机器视觉发展最为活跃地区,应用范围涵盖了工业.农业.医药.军事.航天.气象等国民经济各个行业.虽然机器视觉的成长速度非常快 ...

  8. 【机器视觉基础知识整理】

    机器视觉基础知识整理 本文记录一些比较有用的机器视觉硬件知识的文章链接,留以备用.会不定时更新补充,也欢迎大家下方评论补充,一起将有用的好文收集整理起来,用的时候也方便一些.(注:本文只附录文章链接, ...

  9. 机器视觉基础笔记01

    机器视觉基础笔记01 1. 什么是图像?怎么定义图像? 图像定义为二维函数 *f(x,y)*,其中*x,y*是空间坐标,*f(x,y)*是点 *(x,y)*的幅值.灰度图像是一个二维灰度(或亮度)函数 ...

最新文章

  1. 解决 Out of range value adjusted for column 'ID' at row 1
  2. js笔记——call,apply,bind使用笔记
  3. mysql concat键值对_MySQL中concat函数
  4. 对PASCAL VOC 数据集进行数据增强
  5. Downloader Middlewares反反爬虫【学习笔记04】
  6. python self 序列_python中序列化对象
  7. 【Java】StringBuilder类、包装类
  8. 读卡距离和信号强度两方面来考虑
  9. 信安教程第二版-第26章大数据安全需求分析与安全保护工程
  10. 打造数据中心的软实力
  11. PKM2数据导出的xml显示用的XSL
  12. maven setting 设置jdk版本
  13. VC6.0 2 VC2008 移植 中多字节字符集和Unicode之间的互换
  14. 关于nvidia-smi和nvidia -V即nvidia --verison的命令说明
  15. js ajax 401,$ .ajax请求总是401(UNAUTHORIZED)
  16. SAP OB08汇率的计算-转换因子
  17. 安装deepin系统
  18. scrcpy替换minicap
  19. 在线教育项目技术笔记1
  20. 认识区块链——思维导图总结

热门文章

  1. 数据挖掘优秀工具对比
  2. SSD源码解读2-PriorBoxLayer
  3. 计算机什么ups又称在线式ups,在线式ups电源的介绍
  4. 【报告汇】三公里社区争夺战——2021年社区团购研究报告-202102.pdf(附下载地址)
  5. [2021.7.9][11 使用C++11开发一个轻量级的IoC容器(工厂模式的应用及优化)] 11.4 通过Any和闭包来擦除类型 和 创建依赖的对象
  6. 大学中的matlab课程,Matlab及在电子信息课程中的应用-中国大学mooc-题库零氪
  7. 【学习】adversarial attack、evasion attacks
  8. unsupported operand type(s) for /: 'Dimension' and 'float'
  9. 苹果手机PD快充电压电流全程详解
  10. 前端 token 应该放在哪里呢?