【发布时间】:2011-10-27 18:00:00
【问题描述】:
我正在尝试增加加载图像img 的亮度,但是为了循环像素,我使用了一个较小的矩阵[稍后我将使用它来应用高斯模糊]。这是我的功能:
void Dobright(cv::Mat &in,IplImage * img)
{
uchar* temp_ptr ;
for( int row = 0; row < in.rows; row++)
{
for ( int col = 0; col < in.cols; col++)
{
CvPoint pt = {row,col};
temp_ptr = &((uchar*)(img->imageData + img->widthStep*pt.y))[pt.x*3];
temp_ptr[0] += 100;
temp_ptr[1] += 100;
temp_ptr[2] += 100;
}
}
}
但是,如果原始图像是:
我得到的变亮图像为:
如您所见,有些部分比其他部分更亮,并且由于行和列不一样,因此无法访问整个图像的像素,如何解决这个问题?
【问题讨论】:
-
你知道有用于应用高斯模糊的 OpenCV 函数,以及缩放矩阵的函数吗? (例如 cv::Mat::convert())