ライブカメラフィードを取得して、ユーザーのウィンドウに表示するプロジェクトを行っています。
カメラの画像はデフォルトでは間違った方向に向いているので、次のようにcvFlipを使用して(コンピューターの画面は鏡のように)反転しています。
while (true)
{
IplImage currentImage = grabber.grab();
cvFlip(currentImage,currentImage, 1);
// Image then displayed here on the window.
}
これはほとんどの場合正常に機能します。ただし、多くのユーザー(主に高速のPC)の場合、カメラフィードが激しくちらつきます。基本的に、反転されていない画像が表示され、次に反転された画像が表示され、次に反転されていない画像が何度も表示されます。
そこで、問題を検出するために少し変更しました...
while (true)
{
IplImage currentImage = grabber.grab();
IplImage flippedImage = null;
cvFlip(currentImage,flippedImage, 1); // l-r = 90_degrees_steps_anti_clockwise
if(flippedImage == null)
{
System.out.println("The flipped image is null");
continue;
}
else
{
System.out.println("The flipped image isn't null");
continue;
}
}
反転した画像は常にnullを返すように見えます。なんで?私は何が間違っているのですか?これは私を夢中にさせています。
これがcvFlip()の問題である場合、IplImageを反転する他の方法はありますか?
助けてくれた人に感謝します!