1.在处理图像时,一般直接使用opencv中的imread函数获取图片,但是获取到图片后没有用到opencv中的其他算法时,直接用图片处理就会出现耗时严重的情况,所以需要将图片形式转换成指针数组形式处理。
//定义初始化二维指针
unsigned short *src_arr;
src_arr = (unsigned short *)malloc(行 * 列* sizeof(unsigned short));
for (int i = 0; i < M; i++)
{
temp_arr = src.ptr<ushort>(i);
for (int j = 0; j < N; j++)
{
src_arr[i*M+j] = temp_arr[j];
}
}
2.在定义指针数组函数时需要注意的是,函数定义与结果必须一致。
void function(unsigned short *src);
.Cpp
function(src_arr,);
void function(unsigned short *src)
{
n_kern_x = 2 * round(3 * sigma) + 1;
n_kern_y = n_kern_x;
for (int j = 0; j < n_kern_y; j++) {
for (int i = 0; i < n_kern_x; i++) {
kern_yy_f[j*n_kern_y+ i] = kern_xx_f[i*n_kern_y+j];
}
}
}
|