0

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;
}

谢谢 :)

4

1 回答 1

0

我认为如果您使用 c 或 c++ 来开发您的 apk,那么您可以简单地包含该 lsd.h,它的源文件 lsd.cpp,然后您只需将参数传递给该线段检测器就足够了。但是,如果您将 java 用于您的 apk,那么您必须进行大量修改,要么您必须将其转换为 java 类,要么您必须找到一种替代方法将其包含到您的项目中。

于 2014-03-05T12:36:22.517 回答