【发布时间】:2019-10-02 07:13:26
【问题描述】:
我读了一张图片:
img = cv2.imread("sky.png", 1)
现在,我想在每个通道的每一列中添加一个像素。我尝试的方法如下:
img[row_1, :, 0] = np.insert(img[row_1,:,0], column_1, some_value)
img[row_1, :, 1] = np.insert(img[row_1,:,1], column_1, some_value)
img[row_1, :, 2] = np.insert(img[row_1,:,2], column_1, some_value)
有没有比分别写入每个通道更好的方法?
更新: 正如我所提到的,我想添加一个新的 列,即 4x4 图像,转换为 4x5 图像。每个像素的值不同,列的顺序也不固定。例如,第一个像素插入到 3 列,第二个像素插入到 1 列,依此类推(使用预定的列集)
例子:
[
[1,2,3,4],
[4,5,6,7],
[8,9,10,11]
]
以上是 3x4 图像(实际上是 3 通道图像)。我想通过在 [0,2]、[1,1]、[2,4] 处添加像素来将其转换为 3x5 图像
然后输出变成:
[
[1,2, new-pixel-a, 3, 4],
[4,new-pixel-b, 5, 6, 7]
[8, 9, 10, 11, new-pixel-c]
]
所以我得到一个新图像,(3, 5)
【问题讨论】:
-
检查this,也许有帮助。告诉我。
-
@DaemonPainter 无法理解。你知道 OpenCV 和 numpy 的例子吗?
-
你的意思是图片高度应该增加1吗?
-
@MarkSetchell 是的。但我想为每一行插入不同的像素。对于 4x4 图像,即 5x4,我想插入 5 个不同的像素。
-
你的问题似乎让汉斯和我都感到困惑。也许你可以先展示一个小的、简单的图像,然后它应该看起来如何?以及之前和之后的尺寸。谢谢。
标签: python numpy opencv computer-vision