【发布时间】:2013-12-08 17:54:33
【问题描述】:
基本上我是在自学 C++,部分程序功能是打开和关闭指定的图像。我该怎么做呢?或者我会使用什么资源?
谢谢!
【问题讨论】:
-
最简单的方法是使用像 Qt 这样的框架,它已经拥有处理图像所需的所有库。
基本上我是在自学 C++,部分程序功能是打开和关闭指定的图像。我该怎么做呢?或者我会使用什么资源?
谢谢!
【问题讨论】:
在 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();
}
【讨论】:
对于跨平台、开源和非常好的库,您可以使用 libmagick++。
【讨论】:
从 OpenCV 2 Computer Vision Application Programming Cookbook 修改的 Hello World 示例在 VS 2012 win32 控制台应用程序中运行
或official OpenCV (Open Source) sample
警告: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;
}
【讨论】: