显示拜耳格式图像的像素

时间:2017-11-16 10:04:26

标签: python numpy opencv

我刚开始使用OpenCv-Python。 我想看看Bayer格式的图像的像素值。使用OpenCv-Python,我编写了以下代码来显示像素值:

import numpy as np
import cv2
image = cv2.imread("bayer_small.png")
image_data = np.array(image)
print(image_data[50][50])

#Output is printed as " [ 0 0 102]

我的期望是单像素值:102

为什么会这样?由于图像仅采用拜耳格式,因此我预计每个像素只有一个组件。

据我所知,其他两个组件的输出显示为零。但我只期待拜耳格式的数据,例如:第一行的BGBGBGBG。

我的目标是实现一种算法。因此,试图一步一步做。

编辑1:是否有可以将普通图像转换为拜耳格式的内置函数?

1 个答案:

答案 0 :(得分:3)

虽然您的图片可能包含来自拜耳矩阵的数据,但它仍然使用RGB格式来包含它。您可以假设每个像素的两个通道包含0;因此,您应该沿第三轴对整个图片应用矢量化和:

data = np.sum(image_data, axis=2)

为了规范它。

顺便说一下,您可以使用更简洁的语法访问Numpy数组中的数据:data[50, 50]而不是data[50][50]

相关问题