【C#】 JPEGの品質を変更する
OpenCVSharpのImWriteを使うことで画像を保存できますが、品質レベル(デフォルト値95)を変えたい時どうすれば良いのか調べました。 下記のようにエンコード⇒デコード⇒ImWriteという手順で良いようです。
// 画像の読み込み Mat image = Cv2.ImRead("lenna.png"); // 品質50でエンコードする var buffer = new byte[image.Rows * image.Cols * image.Channels()]; var param = new ImageEncodingParam(ImwriteFlags.JpegQuality, 50); Cv2.ImEncode(".jpg", image, out buffer, param); // デコードして保存する image = Cv2.ImDecode(buffer, ImreadModes.Color); Cv2.ImWrite("compressed_lenna.jpg", image);