访问C中索引图像的调色板



假设我想按原样读取索引图像(而不是3通道24位图像(我希望阅读和修改索引图像的调色板。在opencv中,我还没有遇到任何这样的函数来提取图像的调色板!我也想知道调色板的数据类型。我正在使用opencv用c进行编码有什么帮助吗?

感谢您的图片链接。首先,OpenCV不支持GIF(如Ameya005链接的(。然而,还有其他索引调色板图像格式。它无法在OpenCV中获得索引调色板图像,所以除非我错过了什么,否则我认为你无法直接在OpenCV上使用索引调色板。听起来你需要一个替代的解决方案。为什么需要直接使用索引选项板?

如果你只需要的话,下面的第二个选项可能会让你在OpenCV中拥有索引(调色板会丢失(。

以下是我尝试过的:

加载苍白的PNG(转换为3通道颜色(

import cv2
im = cv2.imread("mandril_color.png")
im.shape # returns (512, 512, 3) so it's been converted to 3-channel color

加载苍白的GIF(转换为灰度(

我想这是用指数作为强度转换为灰度,但我还没有验证

import cv2
import Image
import numpy as np
im_pil = Image.open("mandril_color.gif")
im_cv = np.asarray(im_pil)
im_cv.shape # returns (512, 512) so it's become grayscale

在OpenCV中从头开始创建苍白的图像

我没有找到任何方法来做这件事。

好吧,我认为OpenCV没有任何功能可以做到这一点。cvLoadImage((或imread((函数使用libpng作为编解码器来直接读取图像。

查看文档以获取更多信息

http://opencv.itseez.com/modules/highgui/doc/reading_and_writing_images_and_video.html?highlight=imread#imread

最新更新