甲壳虫乐队

本文介绍了如何使用OpenCV读取彩色甲壳虫图片,将其转换为灰度并融合到同一图像中,创建了一个黑白配色的甲壳虫乐队效果。通过`cv2.cvtColor`函数实现BGR到灰度的转换,并展示了两种方法合并图像的操作。
摘要由CSDN通过智能技术生成

OpenCV技能树OpenCV基础IO与GUI

一只甲壳虫想组个乐队,但是临时找不到队友。请使用 OpenCV 读取下面的彩色甲壳虫图片 ‘bug.jpg’,帮助他变身灰色甲壳虫,然后完成组队。
在这里插入图片描述

显示甲壳虫乐队并写入到 ‘bug_band.jpg’:
在这里插入图片描述

import numpy as np
import cv2

if __name__ == '__main__':
    bug_img = cv2.imread("bug.jpg")

    bug_img1 = bug_img.copy()
    bug_img_gray = cv2.cvtColor(bug_img1, cv2.COLOR_BGR2GRAY)

    bug_img_gray_by_BGR_space = np.zeros_like(bug_img1)
    bug_img_gray_by_BGR_space[:, :, 0] = bug_img_gray
    bug_img_gray_by_BGR_space[:, :, 1] = bug_img_gray
    bug_img_gray_by_BGR_space[:, :, 2] = bug_img_gray

    bug_img_concat = np.concatenate((bug_img, bug_img_gray_by_BGR_space), axis=1)
    cv2.imwrite("bug_band.jpg", bug_img_concat)

    cv2.imshow('甲壳虫乐队', bug_img_concat)

    cv2.waitKey(0)
    cv2.destroyAllWindows()

# import numpy as np
# import cv2
#
# if __name__ == '__main__':
#     bug_img = cv2.imread("bug.jpg")
#     bug_img_gray = cv2.cvtColor(bug_img, cv2.COLOR_BGR2GRAY)
#
#     bug_img_gray_by_BGR_space = cv2.cvtColor(bug_img_gray, cv2.COLOR_GRAY2BGR)
#
#     bug_img_concat = np.concatenate(
#         (bug_img, bug_img_gray_by_BGR_space),
#         axis=1
#     )
#     cv2.imwrite("bug_band.jpg", bug_img_concat)
#
#     cv2.imshow('甲壳虫乐队', bug_img_concat)
#
#     cv2.waitKey(0)
#     cv2.destroyAllWindows()

这两者是等价的
因为灰度图是单通道,所以无法直接进行合并为一个图像。
用灰度图的单通道,分别赋值给三通道,这样维度相同就可以合并成一个图像了。
以下是两种合并方法,第一种是opencv官方的通道赋值,另一种是我写的。

# bug_img_gray是单通道的灰度图

# 直接赋值给3个通道
bug_img_gray_by_BGR_space = cv2.cvtColor(bug_img_gray, cv2.COLOR_GRAY2BGR)

# 给每个通道赋值
bug_img_gray_by_BGR_space = np.zeros_like(bug_img1)
bug_img_gray_by_BGR_space[:, :, 0] = bug_img_gray
bug_img_gray_by_BGR_space[:, :, 1] = bug_img_gray
bug_img_gray_by_BGR_space[:, :, 2] = bug_img_gray
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

默执_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值