下载了一个分水岭算法的代码,函数为
函数名 : Watershed
功能 : 用标记-分水岭算法对输入图像进行分割
算法实现 : 无
输入参数说明 : OriginalImage --输入图像(灰度图,0~255)
SeedImage --标记图像(二值图,0-非标记,1-标记)
LabelImage --输出图像(1-第一个分割区域,2-第二个分割区域,...)
row --图像行数
col --图像列数
返回值说明
函数void Watershed(const int **OriginalImage, char** SeedImage, int **LabelImage, int row, int col)
,但不知道int **OriginalImage的定义是什么意思,直接定义后总是提示我定义不对。例子中的定义是这样的:unsigned char** ori_image;
ori_image=alloc_uszchar_space(m_imageH,m_imageW);
但是alloc_uszchar_space编译器不认,求大人指点,急!
函数名 : Watershed
功能 : 用标记-分水岭算法对输入图像进行分割
算法实现 : 无
输入参数说明 : OriginalImage --输入图像(灰度图,0~255)
SeedImage --标记图像(二值图,0-非标记,1-标记)
LabelImage --输出图像(1-第一个分割区域,2-第二个分割区域,...)
row --图像行数
col --图像列数
返回值说明
函数void Watershed(const int **OriginalImage, char** SeedImage, int **LabelImage, int row, int col)
,但不知道int **OriginalImage的定义是什么意思,直接定义后总是提示我定义不对。例子中的定义是这样的:unsigned char** ori_image;
ori_image=alloc_uszchar_space(m_imageH,m_imageW);
但是alloc_uszchar_space编译器不认,求大人指点,急!
例如,
char a[10] 在作为函数参数的时候, 可以写成 char *p, 用来表示一个字符串
但是如果我想表示几个这样的字符串怎么办呢? 那就可以用二级指针 char *a[10];
请问这样的指针怎么初始化。就是函数参数为unsigned char** ori_image,
在调用的地方定义unsigned char** ori_image;
ori_image=alloc_uszchar_space(m_imageH,m_imageW);
但是ori_image的初始化alloc_uszchar_space(m_imageH,m_imageW抱错,应该怎么做,
理解上应该是1个动态二维数组。
unsigned char** ori_image = NULL;
unsigned char** ori_image=NULL;
ori_image=new unsigned char*[m_imageH];
for(i=0;i<m_imageH;i++)
ori_image[i]=new unsigned char[m_imageW];