入力画像のガンマを変更する関数を書こうとしています。
私が書いたコードは次のとおりです。
if(inputImage.channels() >= 3)
{
Mat hsv;
cvtColor(inputImage,hsv,CV_BGR2HSV_FULL);
vector<Mat> channels;
split(hsv,channels);
Mat tmp1=(channels[2]/255);
Mat tmp;
pow(tmp1,1.5,tmp);
channels[2]=255 *tmp;
Mat result;
merge(channels,hsv);
cvtColor(hsv,result,CV_HSV2BGR_FULL);
return result;
}
しかし、行 pwo(...): で run timeerror が発生しています: エラーは次のとおりです。
OpenCV Error: Assertion failed (depth == CV_32F || depth == CV_64F) in unknown function, file C:\slave\builds\WinInstallerMegaPack\src\opencv\modules\core\src\mathfuncs.cpp, line 1931
pow で 1.5 を 2 に変更すると、エラーは発生しません。openCVの行列の各要素を非整数値にするにはどうすればよいですか?
OpenCVで画像のガンマを変更するより良い方法はありますか?