我想使用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> '; }
答案 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