web-dev-qa-db-ja.com

C ++で画像を開いて表示しますか?

基本的に私は自分自身にC++を教えており、プログラム関数の一部は指定された画像を開いたり閉じたりすることです。どうすればこれを行うことができますか?または、どのリソースを使用しますか?

ありがとう!

6
DeeVu

C++(追加のライブラリなし)では、画像を開くことができます。しかし、バイナリデータの束以外に特に役立つものはありません。次に、独自のデコーダーを使用する必要があります opencv を使用する場合、画像を開いて表示するように書き込むことができます。

Mat m("fileName");
imshow("windowName",m);

Qtのような汎用ライブラリで同じことを行うには、次のコードを使用できます。

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    QGraphicsScene scene;
    QGraphicsView view(&scene);
    QGraphicsPixmapItem item(QPixmap("c:\\test.png"));
    scene.addItem(&item);
    view.show();
    return a.exec();
}

Imageviewerウィジェットの詳細については、 ここ にアクセスしてください。または、グラフィックビューとして表示するために ここ を参照することもできます。

8
deeiip

クロスプラットフォーム、オープンソース、非常に優れたライブラリの場合は、libmagick ++を使用できます。

vS 2012 win32コンソールアプリで実行されているOpenCV 2コンピュータービジョンアプリケーションプログラミングクックブックからの変更されたHelloWorldサンプル

または 公式OpenCV(オープンソース)サンプル

警告:opencv-2.4.10.exe Winインストーラーは360 MBであり、多くの高度な機能があり、サンプルコード、ドキュメント、およびPythonとJavaもx86と64

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>    

int main()
{        
    // read an image
    cv::Mat image= cv::imread("img.jpg");   
    // create image window named "My Image"
    cv::namedWindow("My Image");
    // show the image on window
    cv::imshow("My Image", image);
    // wait key for 5000 ms
    cv::waitKey(5000);

    return 0;
}
0
Iman Abidi