Opencv表示ピクチャ


Author:胡健Time:2016/4/5 nankai
第1部である以上、1枚の画像を読み取り、1枚の画像を表示し、1枚の画像を書き込むなど、簡単なことをします.以前のopencvバージョンでは、cv接頭辞付きの関数はc言語スタイルで、メモリは自分で管理する必要がありましたが、最新バージョンではcv接頭辞のない関数を使用することができます.cv接頭辞付きの関数はすべて最新バージョンで代替品を見つけることができますが、最新バージョンの関数は間違いなくc++スタイルです.例えばMat、画像マトリクスを保存するためのデータ構造は、膨大なクラスです.以前のバージョンでは、IPlImageポインタで画像を表していました.個人的には初期バージョンの関数は古いものの方が効率的ではないと思いますが(?C言語の方が効率的だと錯覚しているのかもしれませんし、使い勝手が煩雑で自分でメモリを管理する必要があるのかもしれません)、IPlImageポインタを使わない場合は、メモリ漏れの原因にならないように解放すべきですが、Matを使って画像を保存することで心配する必要はありません.Matはカプセル化されたクラスなので、自分の構造関数があり、それがもう役に立たないことに気づいたとき、自分で結果を出します.もちろん、最新バージョンの関数を使用するメリットは言うまでもなく、使いやすいだけでなく、より安全で、メモリの漏洩を常に心配するのではなく、目標に集中することができます.もちろんメモリをうまく処理できれば、Cスタイルのopencv関数を使うのはメリットがありません.そうしないと、opencv公式もこのような肥大したコードを下に互換性を持たないでしょう.次に、1枚の写真をメモリに読み込んで表示する方法を見てみましょう.比較するために、2つのバージョンを実現します.
 //c++ style
Mat image=imread(filename);
Imshow(windowsname,image);
//c style
IPlImage* image=cvLoadImage(filename)
cvNamedWindow(windowname);
cvShowImage(windowname,image);
cvReleaseImage(&image);
cvDestroyWindow(windowname);