0

私は opencv を使用しており、imshow() を使用して表示できるフレームがありますが、imwrite を使用してディスクに保存すると、黒い画像が表示されます。

 ......  
// frame *= 1/255; even converting the color before writing it didn't help
cv::sqrt(frame,frame);
cv::imwrite("name.tif",frame);
frame *=1/15.96;
imshow("frame",frame); //it works fine 
................

なぜそれが機能しないのか。前もって感謝します

4

1 に答える 1

0

ここで行ったことは、imwrite() を実行し、次にフレームに対して数学演算を実行し、次に imshow() を実行したことです。

したがって、あなたは 2 つの異なるバージョンの Mat フレームを作成および表示しています。.tiff 拡張子が機能することを確認した場合、sqrt() によって黒いフレームが表示される可能性があります。試す:

cv::sqrt(frame,frame);

frame *=1/15.96;

cv::imwrite("name.tif",frame);
imshow("frame",frame);

これで、自分が見ているものを書いていることを確信できます。両者にまだ違いがある場合は、他の画像形式で同じことを試してみてください

于 2016-10-18T06:58:33.950 に答える