2017-10-25 11 views
0

私はOpenCVで画像をキャプチャし、それをストリームにしてユーザインターフェイスに表示しようとしています。私は、画像を表示するには、次のコードを使用してきた:OpenCVはキャプチャされたIPLImageのサイズを変更しますか?

OpenCVFrameGrabber grabber; 
JLabel webCamScreen__ = null; 

grabber = new OpenCVFrameGrabber("VIDEO IP-ADDRESS"); 
grabber.setImageHeight(webCamScreen__.getHeight()); 
grabber.setImageWidth(webCamScreen__.getWidth()); 

grabber.start(); 

while (true) { 
    IplImage grabbedImage = grabber.grab();  
    this.webCamScreen__.setIcon(new ImageIcon(grabbedImage.getBufferedImage())); 

} 

grabber.stop(); 

撮影した画像は、JLabelのコンポーネントに表示されていると私は、コンポーネント内に収まるように、受信した画像のサイズを変更したいと思います。画像のアスペクト比を同じに保つ必要があります。現在、受信した画像はグラッパーのimageHeigthとimageWidthをオーバーライドします。

+1

*「受け取った画像をコンポーネントの内部に収まるようにサイズ変更したい」*そうです。それとも、あなたにコードをスプーンで送ってくれると思いますか?それはSOの仕組みではありません。 **具体的な**質問がある場合は、試してみてください。 –

+0

すぐに役立つようにするには、[MCVE]または[ショート、自己完結型、正しい例](http://www.sscce.org/)を投稿してください。 –

答えて

0

私は最終的に解決策が見つかりました:

IplImage origImg = grabber.grab(); 
resizedImage = IplImage.create(webCamScreen__.getWidth(), webCamScreen__.getHeight(), 
         origImg.depth(), origImg.nChannels()); 
opencv_imgproc.cvResize(origImg, resizedImage); 
this.webCamScreen__.setIcon(new ImageIcon(resizedImage.getBufferedImage())); 

opencv_imgproc私はIPL-画像のサイズを変更することができたそれによってリサイズ機能を持っていました。

はあなたの助けをいただき、ありがとうございます。 :)

0

特定の再互換性の問題がないかぎり、長い間使われていないIPLImageを使用しないでください。

Matを代わりに使用してください。

+0

私は持っているので、IPLImage以外の何かを使用することはできません。私はMatを使ってみましたが、動作させることができませんでした。 – ykkosmaito

関連する問題