良い一日!
OpenCV でやりたいことを表す適切な用語が見つからないようです。状況は次のとおりです。
グレースケールの画像と色 (BGR) があります。
グレースケール画像に色を「適用」したいが、輝度を保持して後で保存したい。
私の最初の思考プロセスは次のとおりでした。
- BGRカラーをLuvに変換
- グレースケール イメージから L を置換
- 最終画像を BGR に変換して保存
これは私がこれまでに行ったことです:
cv::Mat pixelColor(1, 1, CV_8UC3, cv::Scalar(0));
pixelColor.at<cv::Vec3b>(1, 1) = cv::Vec3b(128, 255, 0); // currently hard-coded but it actually comes from another source
cv::cvtColor(pixelColor, pixelColor, CV_BGR2Luv);
pixelColor.at<cv::Vec3b>(1, 1)[0] = image.at<unsigned char>(y, x);
cv::cvtColor(pixelColor, pixelColor, CV_Luv2BGR);
グレースケール画像のすべての y と x を反復処理します。実際の色は別の場所にありますが、BGR であることが保証されています。
私の質問は次のとおりです: (1) このプロセスの適切な用語は何ですか? (2)どこが悪いの?