【发布时间】:2010-10-23 10:56:21
【问题描述】:
我正在完成计算机视觉课程的任务。子任务之一是基于图像亮度的梯度方向计算。我制作了一个矩阵 bright[width][height] 包含图像每个像素的亮度值。我有两个这样的功能:
double Image::grad_x(int x,int y){
if(x==width-1 || x==0) return bright[x][y];
return bright[x+1][y]-bright[x-1][y];
}
double Image::grad_y(int x,int y){
if(y==height-1 || y==0) return bright[x][y];
return bright[x][y+1]-bright[x][y-1];
}
编辑:修复边界检查
我正在使用简单的导数,而不使用 Sobel 运算符,因为简单的导数足以满足我的需要。
问题是,我是否正确地进行了这个梯度计算,我与边界像素到底有什么关系(现在函数返回像素本身的值,我不确定它是否准确)?而且,顺便说一句,计算图像的梯度有什么用处吗?我想确保我的程序运行良好。
【问题讨论】:
标签: c++ image-processing gradient