c++ 数字图像处理,该如何处理
c++ 数字图像处理我现在是初学,想先了解一下,对一副图像,如何使用visual studio 2010显示出来,如果有代码
c++ 数字图像处理
我现在是初学,想先了解一下,对一副图像,如何使用visual studio 2010显示出来,如果有代码更好,这个必须要建立MFC工程吗?我不想使用MFC,能不能建立控制台工程?
[解决办法]
推荐OpenCV .可以了解一下
[解决办法]
你的问题可以这么比喻:我是初学,想先了解一下,在复杂路况下怎么开车,如果有具体的操作说明更好,这个必须要练很久才行吗?我不想练很久,能不能问问就会?
答案是:不能。
[解决办法]
可以使用opencv,不需要建立mfc或win32工程,控制台程序即可,只要设置好opencv的头文件,库文件路径
[解决办法]
一定要使用c++吗?如果非要在windows下使用VS的话,你可以使用c#,处理图像很简单。
否则要使用c++的话,最简单的方法是使用windows自带的gdi+对图像进行解码编码,然后绘制到窗口。使用windows api或者mfc框架都可以。
[解决办法]
去网上找一个CDib类,看看它是怎么显示图像的
一点点分析学会
[解决办法]
这个CDib还是太弱了。。。。。只能搞bmp...
另外,楼主的老板为什么这么抵触opencv呢。
windows下也可以用cximage,去codeproject上下一个。
[解决办法]
[解决办法]看他想要干什么了,如果只是学习数字图像处理的原理,那么这些统统不如matlab或python方便。
但看楼主的意思,应该是要做工程,做工程的话,面对的大多数图片格式是jpg,其次是png,甚至gif,bmp很少的
[解决办法]不使用库的话,你得自己调用windows api,
SetDIBitsToDevice (原图显示)
StretchDIBits (缩放显示)
还是挺麻烦的。
不过你最好找封装好的一些图像库,这样你只需要调用一句pImage->draw(hdc,...)之类的就完事了
[解决办法]推荐openCV开发库,程序示例如下,要是自己实现,还真的挺难的
#include "stdafx.h"
#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;
int main(int argc, char* argv[])
{
const char* imagename = "lena.jpg";
//从文件中读入图像
Mat img = imread(imagename);
//如果读入图像失败
if(img.empty())
{
fprintf(stderr, "Can not load image %s\n", imagename);
return -1;
}
//显示图像
imshow("image", img);
//此函数等待按键,按键盘任意键就返回
waitKey();
return 0;
}