LSD是线性时间线段检测器,可提供亚像素精确结果。它可以在没有参数调整的情况下处理任何数字图像。它控制自己的错误检测次数:平均每个图像允许一次误报。 该软件包包含一个小例子,
我可以在android上工作吗?如果我能,那么正确的方法是什么?
#include <stdio.h>
#include "lsd.h"
int main(void)
{
image_double image;
ntuple_list out;
unsigned int x,y,i,j;
unsigned int X = 512; /* x image size */
unsigned int Y = 512; /* y image size */
/* create a simple image: left half black, right half gray */
image = new_image_double(X,Y);
for(x=0;x<X;x++)
for(y=0;y<Y;y++)
image->data[ x + y * image->xsize ] = x<X/2 ? 0.0 : 64.0; /* image(x,y) */
IplImage* imgInTmp = cvLoadImage("C:\Documents and Settings\Eslam farag\My Documents\Visual Studio 2008\Projects\line\hand.JPEG", 0);
/* call LSD */
out = lsd(image);
/* print output */
printf("%u line segments found:\n",out->size);
for(i=0;i<out->size;i++)
{
for(j=0;j<out->dim;j++)
printf("%f ",out->values[ i * out->dim + j ]);
printf("\n");
}
/* free memory */
free_image_double(image);
free_ntuple_list(out);
return 0;
}
谢谢:)
答案 0 :(得分:0)
我认为如果你使用c或c ++开发你的apk,那么你只需要包含lsd.h,它的源文件lsd.cpp然后你必须简单地将参数传递给那个线段探测器就足够了。但是如果你使用java为你的apk,那么你必须做很多修改,或者你必须将它转换为java类,或者你必须找到另一种方法将它包含在你的项目中。