c++ - 从 PNG 数据到 tesseract

标签 c++ image png tesseract

我正在尝试将图像数据从 Magick++ 移动到 tesseract。

我有 PNG 数据和一些相关信息。

tesseract 方法的签名是:

void SetImage(const unsigned char* imagedata, int width, int height, int bytes_per_pixel, int bytes_per_line);

我可以很好地提供前三个参数。但是 bytes_per_pixel 和 bytes_per_line 我不太确定。图像本身有 11564 像素,但数据的长度只有 356 字节......它主要是带有一些文本的白色图像。 11564/356 = 32.48 这显然不是每个像素的正确字节数。如何获得正确的字节/像素信息?可以只为我桌面上的一张图片或其他东西获取它并将其设置为常量,我正在处理的所有图片都将具有相同的格式。

那么就每行字节数而言,是否只是以像素为单位的图像宽度 * 每像素字节数?

最佳答案

bytes_per_pixel 可以从 PNG 数据中获得。它们通常是 8、24 或 32。

bytes_per_line 也是,但是你可以这样计算:bytes_per_pixel * width/8

关于c++ - 从 PNG 数据到 tesseract,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22226959/

相关文章:

c# - C# DLL 可以调用调用 native C++ 静态库的 C++/CLI 托管包装器吗?

c++ - C++17 异常说明符类型系统将如何工作?

c++ - localtime() 和 gmtime() 似乎弄乱了我的输入流 C++/C

c++ - VS2010 的 std::regex_match 问题

python - 如何自定义 Tkinter 按钮

具有绝对位置的图像到pdf itext中的位置

c++ - 在 C++ (win32) 中将位图转换为内存中的 PNG

python - 如何在 OpenCV 中重新绘制皮肤?

linux - 如何在 linux shell 中删除多个文件名的前 2 个字母?

animation - css3动画(逐帧)