连接组件标记算法C ++

时间:2019-05-11 05:54:17

标签: c++ opencv opencv3.0 opencv3.1

我试图实现标签算法。我使用IplImage映射到ancien版本,但仍然遇到麻烦。欢迎提出任何想法。非常感谢

$user_sql = "SELECT DISTINCT user_id from " . $wpdb->prefix . "usermeta WHERE meta_key = '_user_category' AND meta_value LIKE '%" . $_REQUEST['category'] . "%' AND meta_compare = 'IN' ";

我有一个错误:

  1. pixels [i] [j] =新的RelatePixel(image.at(Point(i,j))[0],上,左); -tp1.cpp:116:73:错误:数组下标的类型无效'unsigned char [int]'
  2. tp1.cpp:124:28:错误:从'IplImage * {aka _IplImage *}'转换为非标量类型'cv :: Mat'请求的Mat img = cvCreateImage(cvSize(nbRows,nbCol) ,CV_8UC3,1);

  3. img-> imageData [j + offset] =像素[i] [j] .GetValeur(); tp1.cpp:130:16:错误:“->”的基本操作数具有非指针类型“ cv :: Mat”

  4. initial_image = clone(tmp); tp1.cpp:193:30:错误:无法将参数'1'的'cv :: Mat'转换为'int()(void )'到'int clone(int() (void ),void *,int,void *,...)'
  5. 垫img = NULL; tp1.cpp:289:15:错误:请求从“ long int”转换为非标量类型“ cv :: Mat”

1 个答案:

答案 0 :(得分:1)

  

pixels [i] [j] =新的RelatePixel(image.at(Point(i,j))[0],上,左); --   tp1.cpp:116:73:错误:数组的无效类型“ unsigned char [int]”

image.at<uchar>(Point(i,j))[0]不正确。 at将返回uchar。因此,您不应该使用[0]取消引用,image.at<uchar>(Point(i,j))应该足够。

  

下标tp1.cpp:124:28:错误:从‘IplImage * {aka   _IplImage *}”转换为非标量类型“ cv :: Mat”,请求Mat img = cvCreateImage(cvSize(nbRows,nbCol),CV_8UC3,1);

cvCreateImage是旧的API。只需使用cv::Mat构造函数:

cv::Mat img(nbRows, nbCol, CV_8UC3);

  

img-> imageData [j + offset] =像素[i] [j] .GetValeur(); tp1.cpp:130:16:   错误:“->”的基本操作数具有非指针类型“ cv :: Mat”

您可以通过调用img.ptr

获得指向图像数据的指针。
  

initial_image = clone(tmp); tp1.cpp:193:30:错误:无法转换   “ cv :: Mat”改为“ int()(void)”,而参数“ 1”改为“ int clone(int   ()(void),void *,int,void *,...)’

我看不到您在何处定义了此clone()函数,但没有将正确的参数传递给它。第一个参数需要一个不带参数且返回整数的函数。

  

垫img = NULL; tp1.cpp:289:15:   错误:从“ long int”转换为非标量类型“ cv :: Mat”   请求

您无法将NULL分配给cv::Mat对象。那没有道理。

相关问题