用opencv读取以下2张图片。返回结果保存到ar_img1_hwc和ar_img2_hwc中(第一维代表行,第二维度代表列,第三维度代表通道(B,G,R顺序)),显示其中任一张图片。 (3)将ar_img1_hwc和ar_img2_hwc转变成灰度图片数组(要求用numpy数组计算完成转变,不允许使用opencv函数转换),用opencv显示其中任一张灰度图片。
时间: 2023-06-09 21:06:49 浏览: 96
opencv读图片显示图片以及灰度图转换
好的,我明白了。下面是代码实现:
```
import cv2
import numpy as np
# 读取图片
img1 = cv2.imread('path/to/image1.jpg')
img2 = cv2.imread('path/to/image2.jpg')
# 转换通道顺序
img1_hwc = cv2.cvtColor(img1, cv2.COLOR_BGR2RGB)
img2_hwc = cv2.cvtColor(img2, cv2.COLOR_BGR2RGB)
# 显示其中任一张图片
cv2.imshow('Image 1', img1_hwc)
cv2.waitKey()
cv2.destroyAllWindows()
# 将图片转换成灰度图像
img1_gray = np.dot(img1_hwc, [0.299, 0.587, 0.114]).astype(np.uint8)
img2_gray = np.dot(img2_hwc, [0.299, 0.587, 0.114]).astype(np.uint8)
# 显示其中任一张灰度图片
cv2.imshow('Gray Image 1', img1_gray)
cv2.waitKey()
cv2.destroyAllWindows()
```
也可以使用 `cv2.cvtColor()` 函数将彩色图像转换成灰度图像,代码如下:
```
img1_gray = cv2.cvtColor(img1_hwc, cv2.COLOR_RGB2GRAY)
img2_gray = cv2.cvtColor(img2_hwc, cv2.COLOR_RGB2GRAY)
```
但是,根据题目要求,我们要使用 numpy 数组计算完成转换,这里使用了 numpy 的 dot 函数来完成。
阅读全文