cv::Mat
fooImage
1000*1000ピクセルのCV_32F
フォーマットの画像が1つあります。
今、私は画像を表示したい、私は使用します
fooImage.convertTo(displayImage,CV_8UC1)
ただし、この回線だけで約5msかかります。これは正常ですか?CV_32F
マット画像をすばやく変換するにはどうすればよいCV_8UC1
ですか?
ありがとう!
cv::Mat
fooImage
1000*1000ピクセルのCV_32F
フォーマットの画像が1つあります。
今、私は画像を表示したい、私は使用します
fooImage.convertTo(displayImage,CV_8UC1)
ただし、この回線だけで約5msかかります。これは正常ですか?CV_32F
マット画像をすばやく変換するにはどうすればよいCV_8UC1
ですか?
ありがとう!
それは遅いように聞こえますが、おそらく convertTo() は SSE2 などを使用するように特に最適化されていません。
RAM から 4Mb を読み取り、1Mb を割り当て、400 万回の浮動小数点操作を実行し、1Mb を RAM に書き戻すので、1 ミリ秒は不合理ではありません。
各値に 255.0 を掛けるだけで、画像データを uchar に変換する単純なループを自分で作成できます。
画像を表示する時間を含めていますか?まだ 8 ビット グレースケールの「displayImage」を作成しています。これは、表示時に RGB または RGBA 画像に変換する必要があります。