前文传送门: 「Python 图像处理 OpenCV (2):像素处理与 Numpy 操作以及 Matplotlib 显示图像」 「Python 图像处理 OpenCV (3):图像属性、图像感兴趣 ROI 区域及通道处理」 图像加法有两种方式,一种是通过 Numpy 直接对两个图像进行相加,另一种是通过 OpenCV 的 不管使用哪种方法,相加的两个图像必须具有相同的深度和类型,简单理解就是图像的大小和类型必须一致。 Numpy 加法 Numpy 的运算方法是: OpenCV 加法 OpenCV 的运算方式是直接调用 两种加法方式对应的示例如下: 结果如下: 可以看到,使用 Numpy 取模加法的图片整体更偏绿色,而使用 OpenCV 饱和运算的加法,整体颜色更偏白色。 图像融合其实也是一种图像加法,但是它和图像加法不同的是对图像赋予不同的权重,可以使图像具有融合或者透明的感觉。 图像加法: 图像融合: 图像融合用到的函数为 这里的 下面这个示例中,我又找了一张下雨的图片,用这张图片和马里奥做一个图像融合的案例: 结果如下: 图像融合时需要注意的和上面一致,需要图像大小是相等的,上面的示例这两张图片都是像素为 560 * 310 且都为 RGB 的图片。 OpenCV 中有超过150种颜色空间转换方法。我们先介绍两种最常用的: BGR <-> 灰度 和 BGR <-> HSV 。 对于改变颜色空间,我们使用 一些常见的 flag 值: 可以很清楚的看到, 结果就不贴了,挺长的。 注意: HSV 的色相范围为 [0,179] ,饱和度范围为 [0,255] ,值范围为 [0,255] 。不同的软件使用不同的范围。因此,如果需要将 OpenCV 值和它们比较,则需要将这些范围标准化。 我们使用 结果如下: 如果有需要获取源码的同学可以在公众号回复「OpenCV」进行获取。 https://blog.csdn.net/Eastmount/article/details/82347501 https://woshicver.com/ 您的扫码关注,是对小编坚持原创的最大鼓励:) 图像加法
add()
函数进行相加。img = img1 + img2
,然后再对最终的运算结果取模。
img1 + img2
。add()
函数进行的,这时的运算方式是饱和运算。
img1 + img2
。import cv2 as cv # 读取图像 img = cv.imread("maliao.jpg", cv.IMREAD_UNCHANGED) test = img # Numpy 加法 result1 = img + test # OpenCV 加法 result2 = cv.add(img, test) # 显示图像 cv.imshow("img", img) cv.imshow("result1", result1) cv.imshow("result2", result2) # 等待显示 cv.waitKey() cv.destroyAllWindows()
图像融合
img = img1 + img2
img = img1 * alpha + img2 * beta + gamma
addWeighted()
具体如下:dst = cv.addWeighter(img1, alpha, img2, beta, gamma) dst = img1 * alpha + img2 * beta + gamma
alpha
和 beta
都是系数,而 gamma
则是一个亮度调节量,不可省略。import cv2 as cv # 读取图像 img1 = cv.imread("maliao.jpg", cv.IMREAD_UNCHANGED) img2 = cv.imread("rain.jpg", cv.IMREAD_UNCHANGED) # 图像融合 img = cv.addWeighted(img1, 0.4, img2, 0.6, 10) # 显示图像 cv.imshow("img1", img1) cv.imshow("img2", img2) cv.imshow("img", img) # 等待显示 cv.waitKey() cv.destroyAllWindows()
改变颜色空间
cvtColor(input_image, flag)
函数,其中的 flag
为转换的类型。# BGR 转 灰度 cv.COLOR_BGR2GRAY # BGR 转 HSV cv.COLOR_BGR2HSV # BGR 转 RGB cv.COLOR_BGR2RGB # 灰度 转 BGR cv.COLOR_GRAY2BGR
flag
的命名非常的通俗易懂,如果想要获取其他所有的标记,可以使用下面这段代码:import cv2 as cv flags = [i for i in dir(cv) if i.startswith('COLOR_')] print(flags)
cvtColor()
这个函数将马里奥转化成灰度图像,示例如下:import cv2 as cv # 读取图像 img = cv.imread("maliao.jpg", cv.IMREAD_UNCHANGED) # 图像类型转换 result = cv.cvtColor(img, cv.COLOR_RGB2GRAY) # 图像展示 cv.imshow("img", img) cv.imshow("result", result) # 等待显示 cv.waitKey() cv.destroyAllWindows()
示例代码
参考
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算