首页 >> 大全

OpenCV图像处理(二十--大结局)

2023-11-09 大全 26 作者:考证青年

机械能是动能与势能的总和,这里的势能分为重力势能和弹性势能。我们把动能、重力势能和弹性势能统称为机械能。决定动能的是质量与速度;决定重力势能的是质量和高度;决定弹性势能的是劲度系数与形变量。机械能只是动能与势能的和。机械能是表示物体运动状态与高度的物理量。物体的动能和势能之间是可以转化的。在只有动能和势能相互转化的过程中,机械能的总量保持不变,即机械能是守恒的。

科普

知识

前言

又是一周见面时,在上期的文章中,我们学习了图像的霍夫变换,它其实是将当前空间的做坐标转换到另一空间的坐标中进行物体形状的检测,包括我们熟知的圆形,直线等等。相信大家看到标题已经知道了本篇文章将是图像处理的最后一篇,因为在图像处理中比较常用的算子我们已经介绍的差不多了,更多的是比较专业的图像处理,这里就不去叙述了,作为本专栏的最后一篇文章,我们不讲太深奥的,就从最开始的基础,回归一下显示图像的问题,我们从哪里出发,就从哪里回去。今天我们继续来学习图像的另一个知识-- VS 显示图像。

一、简介

在之前的文章中,图像显示问题已将讲过很多次了,也用代码进行了多次实操,相信在大家的眼中,显示就是cv2.()这么简单,的确如此,但,今天的内容将会告诉我们,图像的通道顺序将会影响图像的显示结果,为此我们用到了这个图像显示数学工具包来进行比较,一起来看看吧!

1.1 用 显示图像

原始图像:

opencv图像处理编程实例_opencv图像处理案例_

(从你的全世界路过----稻城亚丁)

原始颜色显示:

#coding:utf-8
# 导入图像显示所用到的包
import cv2
# 显示彩色图像  可认为默认为图像原始色彩
# 导入图片位置
img_path = './img.jpg'
# 读取图像
src_img = cv2.imread(img_path)
# 获取图像高度和宽度
img_info = src_img.shape
print("图像的高度为:{} 高度为:{} 通道数为:{}".format(img_info[0],img_info[1],img_info[2]))
# 显示图像
cv2.imshow("src_img",src_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

显示结果:

_opencv图像处理编程实例_opencv图像处理案例

灰度图像显示:

#coding:utf-8
# 导入图像显示所用到的包
import cv2
# 显示彩色图像  可认为默认为图像原始色彩
# 导入图片位置
img_path = './img.jpg'
# 读取灰度图像
src_img = cv2.imread(img_path,0)
# 获取图像高度和宽度
img_info = src_img.shape
print("图像的高度为:{} 高度为:{}".format(img_info[0],img_info[1]))
# 显示图像
cv2.imshow("src_img",src_img)
cv2.waitKey(0)
cv2.destroyAllWindows()

显示结果:

_opencv图像处理编程实例_opencv图像处理案例

1.2 用显示图像

原始图像:

opencv图像处理编程实例_opencv图像处理案例_

原始颜色显示:

还记得我们之前说过,中的图像是以BGR的通道顺序存储的,然而今天所讲的是以RGB模式显示的,所以如果直接进行显示显示的话,将不会是我们想看到的结果,比如:

#coding:utf-8
# 导入图像显示所用到的包
import cv2
import matplotlib.pyplot as plt# 显示彩色图像  可认为默认为图像原始色彩
# 导入图片位置
img_path = './img.jpg'
img = cv2.imread(img_path)
# 灰度图显示,cmap(color map)需要设定为gray
plt.imshow(img)
plt.show()

显示结果:

opencv图像处理编程实例_opencv图像处理案例_

正确的显示:需要将图像通道进行转换为RGB

#coding:utf-8
# 导入图像显示所用到的包
import cv2
import matplotlib.pyplot as plt# 显示彩色图像  可认为默认为图像原始色彩
# 导入图片位置
img_path = './img.jpg'
img = cv2.imread(img_path)
img_cvt = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
# 灰度图显示,cmap(color map)需要设定为gray
plt.imshow(img_cvt)
plt.show()

opencv图像处理案例__opencv图像处理编程实例

显示结果:

opencv图像处理案例_opencv图像处理编程实例_

灰度图像显示:

#coding:utf-8
# 导入图像显示所用到的包
import cv2
import matplotlib.pyplot as plt# 显示彩色图像  可认为默认为图像原始色彩
# 导入图片位置
img_path = './img.jpg'
img = cv2.imread(img_path,0)
# 灰度图显示,cmap(color map)需要设定为gray
plt.imshow(img, cmap='gray')
plt.show()

显示结果:

opencv图像处理案例__opencv图像处理编程实例

分析:仔细观看代码就会发现,读取后的图像已经是灰度图了,但是在用plt显示的时候,还得在参数汇总加上gray,不然显示出来还是色彩空间不对。

例如:

#coding:utf-8
# 导入图像显示所用到的包
import cv2
import matplotlib.pyplot as plt# 显示彩色图像  可认为默认为图像原始色彩
# 导入图片位置
img_path = './img.jpg'
img = cv2.imread(img_path) # 这里为直接读取原始图像
# 灰度图显示,cmap(color map)需要设定为gray
plt.imshow(img, cmap='gray')
plt.show()

显示结果:

opencv图像处理编程实例_opencv图像处理案例_

_opencv图像处理案例_opencv图像处理编程实例

结语

本篇文章是专栏的最后一篇文章,熟悉的粉丝们应该知道,在这个栏目我们主要讲解了的各种图像处理算子和代码,并没有涉及到太多的实际图像处理任务中,专栏从基础出发,到基础截止,期待想学习的朋友们都能够掌握专栏的全部内容,至于后期是否会开出实战类栏目,我们敬请期待!

从下一期文章起,我们将会回归到的实战和提升篇文章,继续学习我们的编程语言,达到尽可能熟练的程度,收拾旧山河,我们再出发……

关于我们

最火推荐

小编推荐

联系我们


版权声明:本站内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 88@qq.com 举报,一经查实,本站将立刻删除。备案号:桂ICP备2021009421号
Powered By Z-BlogPHP.
复制成功
微信号:
我知道了