网站设计的出路,110平米三室一厅简装图片,wordpress 怎么安装,乐云seo商城网站建设【1】引言
前述已经学习了opencv中图像BGR相关知识#xff0c;文章链接包括且不限于下述#xff1a;
python学opencv|读取图像#xff08;六#xff09;读取图像像素RGB值_opencv读取灰度图-CSDN博客
python学opencv|读取图像#xff08;七#xff09;抓取像素数据顺利…【1】引言
前述已经学习了opencv中图像BGR相关知识文章链接包括且不限于下述
python学opencv|读取图像六读取图像像素RGB值_opencv读取灰度图-CSDN博客
python学opencv|读取图像七抓取像素数据顺利修改图像大小-CSDN博客
python学opencv|读取图像九用numpy创建黑白相间灰度图-CSDN博客
python学opencv|读取图像十用numpy创建彩色图像-CSDN博客
python学opencv|读取图像十一彩色图像转灰度图的两种办法-CSDN博客
在这里我们了解奥BGR是每个像素点上的颜色构成。
对于灰度图只有一个通道获取BGR值只会得到一个数据对于彩色图由三个通道获取BGR值将会得到三个数据。
但对于图像的表达还有一种控制颜色的方式是调整图像的色调(Hue)、饱和度(Saturation)和亮度(Value)。色调、饱和度和亮度合起来简称为HSV。
关于色调、饱和度和亮度的百度百科解释链接为HSV颜色模型_百度百科。
【2】官网教程
在opencv的官网提供了BGR和HSV的互相转化说明链接如下
OpenCV: Color conversions
官网提供的转化公式没有详细的来源但如果只进行应用的话即使不是很能读懂官网文档也不影响对代码的使用。所以我们直接大胆尝试。
【3】BGR转HSV图
我们按照已经熟悉的方式先引入模块然后读图片、之后调整和显示图片最后保存图片的工作流程在pycharm等编辑器中输入下述代码
import cv2 as cv #引入cv2模块
import numpy as npimagecv.imread(cv-BGR.png) #读取图片将其转化为灰度图
if image is not None: #成功读取图片cv.imshow(cvtest, image) # 显示为彩色图hsv_imagecv.cvtColor(image,cv.COLOR_BGR2HSV) #BGR和HSV转化 image_hnp.hstack((image,hsv_image)) #BGR和HSV图像拼接cv.imshow(hcvtest, image_h) # 显示为拼接图cv.imwrite(opencv-HSV-001.jpg, hsv_image) #保存HSV图cv.waitKey() # 图片显示时间cv.destroyAllWindows() # 释放所有窗口
else: #未找到图片print(Error: 图片无法加载)在这里我们会发现和之前不同的主要是中间代码段 hsv_imagecv.cvtColor(image,cv.COLOR_BGR2HSV) #BGR和HSV转化
image_hnp.hstack((image,hsv_image)) #BGR和HSV图像拼接
cv.imshow(hcvtest, image_h) # 显示为拼接图
cv.imwrite(opencv-HSV-001.jpg, hsv_image) #保存HSV图 这里首先调用cvtColor()函数让BGR图和HSV图进行了转化
然后使用了np.hstack()函数将BGR图和HSV图横向拼接在了一起
之后就比较简单显示拼接图和保存HSV图。
代码使用的原图为 图1 BGR图
代码运行后获得的拼接图像为 图2(左BGR右HSV)
显然在直接转化的条件下HSV图像可能会失真。
【4】HSV转BGR图
将代码稍加修改在cvtColor()函数中将cv.COLOR_BGR2HSV更新为cv.COLOR_HSV2BGR实现HSV图转BGR图。
使用之前获得的HSV图作为原图 图3 HSV图
运行代码后获得的图像为 图4 (左HSV右BGR)
显然HSV转回BGR发生了新的失真情况。
为追溯把第3章中的HSV图保存为png形式 图5 HSV图png格式
然后再度将HSV图转化为BGR 图6 (左HSV右BGR)-原图png格式
由图6可见使用png格式作为原图HSV转BGR看起来会好一些。
【5】总结
探索了pythonopencv实现BGR图和HSV图的互相转化。