使用opencv可视化24位原始RGB图像数据

时间:2017-12-06 05:13:34

标签: python numpy opencv

我想使用OpenCV处理原始图像。据我所知,使用OpenCV打开原始图像是不可能的。 我对instaction进行了抨击。

我的原始图片是带有24位的RGB(前3个字节代表同一像素中红色,绿色和蓝色的颜色值)。

我的目标是能够使用OpenCV功能处理我的图片。

我应该如何重塑原始数据? 根据我在互联网上看到的内容,我想到了(3,1280,1080)

我怎么能将这三张图片看作“正常”图片?我怎么能分辨出他的三张照片呢?

作为一个小例子,我试图重塑我读过的字节:

 while ($pickresults= mysql_fetch_assoc($picksquery)) {

echo '<th> '.$pickresults['username'].' </th> ';  

    echo ' <td> '.$pickresults['firstgame'].' </td> '; } 

1 个答案:

答案 0 :(得分:2)

OpenCV 能够阅读 NetPBM Wikipedia entry for NetPBM) 格式图片,请参阅链接页面上的PPM Example

所以你可以像这样在你的图像前面放一个P6(即二进制RGB) NetPBM 标题,然后 OpenCV 可以打开它:

{ printf "P6\n1280 1080\n255\n" ; cat YourImage.raw ; } > result.ppm

如果你不幸遇到Windows,你可能会这样做:

echo "P6"          > header.txt
echo "1280 1080"  >> header.txt
echo "255"        >> header.txt
copy /b header.txt+YourImage.raw result.ppm

或者,如果你在 Linux ,你可能有 ImageMagick ,它可用于 macOS Windows 也是。因此,在终端的命令行中,您可以将图像转换为PNG,如tis:

convert -depth 8 -size 1280x1080 rgb:YourImage.raw result.png

然后,您可以将各个频道分开,并将它们与

相邻
convert result.png -separate +append 3channels.png   # or use `-append` instead

或者,使用自动水平对比度:

convert result.png -separate +append -auto-level 3channels.png