java每像素字节数,每行字节数如何在tessbaseapi中使用函数nativeSetImageBytes。两个人的cpp?
我们正在分析一个显示文本片段的图像,其分辨率为2121x105 px。在Java中,我们有以下代码来获取字节数组(我们的限制之一是在这里使用字节数组):
import org.apache.commons.io.IOUtils;
...
InputStream is = getAssets().open("images/text.png");
byte[] bytes = IOUtils.toByteArray(is);
这个字节数组然后传递给本机C++代码——我们不使用TESS 2的java包装器,但是我们使用本地库。在本机代码中,我们试图获得 使用GetUTF8Text()。然后我们看到tess two已经有了一个实现,可以通过将图像作为字节数组传递来设置要读取的图像:
void Java_com_..._TessBaseAPI_nativeSetImageBytes(JNIEnv *env,
jobject thiz,
jlong mNativeData,
jbyteArray data,
jint width,
jint height,
jint bpp,
jint bpl) {
...
我们计算出PNG的bpp应该是4(RGBA)。目前尚不清楚bpl的预期效果。如果我们将图像的宽度设置为bpp,我们就会得到一个分割错误。如果我们将其设置为零,则返回一个空字符串
更新: semgentation错误在GetUTF8Text()中抛出,而不是在SetImage()中抛出
SIGSEGV (signal SIGSEGV: invalid address (fault address: 0xc))
共 (0) 个答案