C/C++;LIBTIFF:需要从BW TIFF文件中读取黑白像素的像素位置 我对Visual C++的图像处理比较新颖,我在寻找一种读取黑白TIFF文件的方法,并将图像写入一个代表0或1的数组十六进制值,然后得到0(黑色)或1(白色)的位置信息。p>
在对谷歌进行了一些研究并在这里发表了一篇文章之后,我有以下几个小问题,请一定要给我指出相关的文章,它们太多了,我无法理解,同时我会继续搜索和阅读 是否可以使用LIBTIFF从TIFF中提取像素位置信息 对于所有图像格式来说,我还是个新手,我不禁想,图像是由一个十六进制值的2D数组组成的,位图格式更合适吗?这样的想法让我想知道我是否可以将“白色”或“黑色”的位置从其高度映射到2D数组上。我想知道“黑”或“白”的位置,可以吗?我真的不想要一个代表图像的0和1的数组,我甚至不确定是否需要它们 TIFF 4×2 BW图像的示例:C/C++;LIBTIFF:需要从BW TIFF文件中读取黑白像素的像素位置 我对Visual C++的图像处理比较新颖,我在寻找一种读取黑白TIFF文件的方法,并将图像写入一个代表0或1的数组十六进制值,然后得到0(黑色)或1(白色)的位置信息。p>,c++,image-processing,pixel,tiff,C++,Image Processing,Pixel,Tiff,在对谷歌进行了一些研究并在这里发表了一篇文章之后,我有以下几个小问题,请一定要给我指出相关的文章,它们太多了,我无法理解,同时我会继续搜索和阅读 是否可以使用LIBTIFF从TIFF中提取像素位置信息 对于所有图像格式来说,我还是个新手,我不禁想,图像是由一个十六进制值的2D数组组成的,位图格式更合适吗?这样的想法让我想知道我是否可以将“白色”或“黑色”的位置从其高度映射到2D数组上。我想知道“黑”或“白”的位置,可以吗?我真的不想要一个代表图像的0和1的数组,我甚至不确定是否需要它们 TIFF
- 黑白
- 黑白
- 黑黑的
- 白白
- 2.1
- 4.4
- 1 2
- 3 3
void ENC_reg()
{
if(inputPort_ENC_reg == true) // true if received an encoder signal
{
ENC_regTemp ++; // increment ENC register temp value by one each time the port registers a signal
if(ENC_regTemp == ptLocArray[i][j])
{
Rollprint(); // print it
i++; // increment by one to the next height location that indicates a "black", meaning print
if (ENC_regTemp == imageHeight)
{
// Check if end of column reached, end of a revolution
j++; // jump to next column of the image (starting next revolution)
i = 0; // reset i index to 0, to the top of the next column
ENC_regTemp = 0; // reset encoder register temp to 0 for the new revolution
};
};
ENC_reg(); // recall itself;
};
}
在我阅读您的示例时,您希望图像的每列有两个数组,一个包含该列中带有黑色像素的行数,另一个包含带有白色像素的行索引。到目前为止是吗 这当然是可能的,但需要大量内存。即使未压缩,灰度图像的单个像素也将占用一个字节的内存。您甚至可以使用位压缩,将8个像素填充到一个字节中。另一方面,除非您限制自己使用不超过255行的图像,否则您将有多个字节来表示每个列索引。您需要额外的逻辑来标记列的结尾
我的观点是:尝试使用“0和1的数组”,因为这应该更容易实现,内存要求更低,运行效率更高。感谢您的回复,我实际上只想要一个2d数组,格式为存储像素位置数据:数组[imageHeight][imageWidth]每列一个数组,或者一个二维数组,在概念上没有什么区别,是吗?还是我在这里漏掉了一点?是的,确实是每列一个数组。我试图实现的是获取BW tiff图像的“白色”或“黑色”的像素位置,而不是两者。我的应用程序的目的不是重建图像或图像处理,由0和1组成的数组似乎是多余的(顶部的附加信息可能会有所帮助)。谢谢你,如果我看起来很固执,请原谅。