我正在尝试将Iplimage从RGB转换为灰色,但转换后图像看起来非常嘈杂。有没有办法获得更好的形象。这就是我所做的。
void gray()
{
for (int i = 0; i<image->width*image->height*image->nChannels;i+=image->nChannels)
{
float b=abs(image->imageData[i]);
float g=abs(image->imageData[i+1]);
float r=abs(image->imageData[i+2]);
float a=(float)(b+g+r)/3;
//a=a/256;
- if(a<0)
{
a=0;
}
image->imageData[i]=a;
image->imageData[i+1]=a;
image->imageData[i+2]=a;
}
}
答案 0 :(得分:0)
尝试这样的事情:
cv::Mat m = cv::cvarrToMat(image);
cv::Mat chan[3];
cv::split(m, chan);
m = (chan[0] + chan[1] + chan[2])/3.
P.S。未经测试