我必须调试一个c ++项目,但由于一个依赖项无法在调试模式下编译,到目前为止我还无法修复该问题,我想尝试在发布模式下调试项目.
目前应用程序由于空指针而崩溃,但我没有导致错误的代码.由于在发布模式中显然忽略了断点,我想知道找出错误的最佳方法是什么.
如何将unsigned int转换为jint?我是否必须完全转换它,或者我可以在没有任何特殊处理的情况下退回它?这基本上是我的代码,但我无法测试它,因为我没有在本地设置JNI.
JNIEXPORT jint JNICALL
Java_test_test(JNIEnv* env, jobject obj, jlong ptr)
{
MyObject* m = (MyObject*) ptr;
unsigned int i = m->get();
return i;
}
Run Code Online (Sandbox Code Playgroud) 我想将Pure Data用作我自己库的原型工具.我发现Pure Data补丁是用C语言编写的,但我的库是用C++编写的.那么如何在纯数据中使用此代码呢?由于我没有使用普通的C,我想知道如何编写C++类的C包装器以及如何实例化我的类呢?或者我必须重写C中的所有内容?
我正在使用OpenCV来提取扫描文档的子图像,并希望使用tesseract对此子图像执行OCR.
我发现我可以在tesseract中使用两种方法进行文本识别,但到目前为止我还是找不到可行的解决方案.
A.)如何将a cv::Mat转换为PIX*?
(PIX*是leptonica的数据类型)
基于下面的vasiles代码,这基本上是我当前的代码:
cv::Mat image = cv::imread("c:/image.png");
cv::Mat subImage = image(cv::Rect(50, 200, 300, 100));
int depth;
if(subImage.depth() == CV_8U)
depth = 8;
//other cases not considered yet
PIX* pix = pixCreateHeader(subImage.size().width, subImage.size().height, depth);
pix->data = (l_uint32*) subImage.data;
tesseract::TessBaseAPI tess;
STRING text;
if(tess.ProcessPage(pix, 0, 0, &text))
{
std::cout << text.string();
}
Run Code Online (Sandbox Code Playgroud)
虽然它没有崩溃或任何事情,但OCR结果仍然是错误的.它应该识别我的示例图像中的一个单词,但它会返回一些不可读的字符.
该方法PIX_HEADER不存在,所以我使用了pixCreateHeader,但它没有将通道数作为参数.那我怎样才能设置频道数量?
B.)我如何使用cv::Mat的TesseractRect()?
Tesseract提供了另一种使用此签名进行文本识别的方法:
char * TessBaseAPI::TesseractRect (
const UINT8 * imagedata, …Run Code Online (Sandbox Code Playgroud) Tesseract 3能够执行页面布局分析.但是,我找不到任何有关如何将库用于此类目的的示例代码或文档.我希望这里有人可以解释如何对图像执行布局分析以及如何解析结果数据.
我正在处理一个处理文档图像(主要是发票)的应用程序,基本上,我想将某些感兴趣的区域转换为XML结构,然后根据该数据对文档进行分类.目前我使用ImageJ分析文档图像和Asprise/tesseract for OCR.
现在我正在寻找一些让开发变得更容易的东西.具体来说,我正在寻找能够自动校正文档图像并分析文档结构的东西(例如,将图像转换为四叉树结构以便于处理).虽然我更喜欢Java和ImageJ,但我对任何库/代码/论文感兴趣,无论它是用什么编程语言编写的.
虽然我正在研究的系统应尽可能自动处理数据,但用户应监督结果,并在必要时更正系统建议的分类.因此,我有兴趣使用机器学习技术来获得更可靠的结果.处理类似文件时,例如特定公司的发票,其结构通常是相同的.当用户先前已经校正了公司的文档数据时,将来应该考虑这些更正.我对机器学习技术知之甚少,想知道如何实现我的想法.
language-agnostic classification machine-learning image-processing
我可以用一个宏来检查visual studio中的当前配置类型吗?根据当前设置,我想要包含main或dllmain函数:
#IFDEF CONFIGURATION_TYPE_EXE
int main(int argc, char **argv)
{
...
}
#ELSEIF CONFIGURATION_TYPE_DLL
BOOL APIENTRY DllMain( HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
return TRUE;
}
#ENDIF
Run Code Online (Sandbox Code Playgroud) 我最近开始使用本体,我正在使用Protege构建一个本体,我也想用它来自动分类字符串.以下说明了一个非常基本的类层次结构:
String
|_ AlphabeticString
|_ CountryName
|_ CityName
|_ AlphaNumericString
|_ PrefixedNumericString
|_ NumericString
Run Code Online (Sandbox Code Playgroud)
最终字符串Spain应该被归类为CountryName或UE4564将是a PrefixedNumericString.
但是我不确定如何建模这些知识.我是否必须先定义一个字符是字母,数字等,然后从现有字符构造一个单词,还是有办法使用正则表达式?到目前为止,我只设法根据一个确切的短语对字符串进行分类String and hasString value "UE4565".
或者,为本体中的每个类保护正则表达式然后使用这些正则表达式在Java中对字符串进行分类会更好吗?
我正在尝试编译Qt 4.7.4,但我总是得到这个错误:
mt.exe: general error c101008d: Failed to write the updated manifest to the resource of file "release\tutorial5.exe". The system cannot find the file specified.
NMAKE : fatal error U1077: '"C:\Program Files(x86)\Microsoft SDKs\Windows\v7.0A\bin\mt.exe"' : return code '0x1f'
Stop.
NMAKE : fatal error U1077: '"C:\Program Files(x86)\Microsoft Visual Studio 10.0\VC\BIN\nmake.exe"' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: 'cd' : return code '0x2'
Stop.
NMAKE : fatal error U1077: …Run Code Online (Sandbox Code Playgroud) 当我在我的c ++项目中一起使用Qt(v4.7.4)和Boost(尝试v1.47和v1.48)时,我得到一个由包含的类引起的链接器错误<boost\filesystem.hpp>.我刚刚设置了Qt,在代码工作之前没有任何问题.
这是错误消息:
... obj:错误LNK2001:未解析的外部符号"private:static class std :: codecvt const*&__cdecl boost :: filesystem3 :: path :: wchar_t_codecvt_facet(void)"(?wchar_t_codecvt_facet @ path @ filesystem3 @ boost @@ CAAAPBV ?$ @的codecvt GDH @ STD @@ XZ)
... obj:错误LNK2001:未解析的外部符号"void __cdecl boost :: filesystem3 :: path_traits :: convert(char const*,char const*,class std :: basic_string,class std :: allocator>&,class std: :codecvt const&)"(?convert @ path_traits @ filesystem3 @ boost @@ YAXPBD0AAV?$ basic_string @ GU?$ char_traits @ G @ std @@ V?$ allocator @ G @ 2 @@ std …