您的位置:首页 > 运维架构

Opencv学习1 :简单读取和显示

2014-01-02 17:25 274 查看
#include "stdafx.h"

#include <cv.h>
#include <cxcore.h>
#include <highgui.h>

#pragma comment(lib,"opencv_core220d.lib")
#pragma comment(lib,"opencv_highgui220d.lib")
#pragma comment(lib,"opencv_imgproc220d.lib")

int _tmain(int argc, _TCHAR* argv[])
{
const char* szFileName = "D:\\T5Aff1.tif";
const char* szWinName = szFileName ;
IplImage* image = cvLoadImage( szFileName,CV_LOAD_IMAGE_COLOR ) ;
assert( NULL != image ) ;
cvNamedWindow(szWinName) ; //创建窗口
cvShowImage(szWinName,image); //显示图像
cvWaitKey(0) ;//等待按键
cvReleaseImage(&image) ;//释放图像
cvDestroyWindow(szWinName) ; //销毁窗口
return 0;
}

//第二种方法

#include "stdafx.h"
#include <opencv2/opencv.hpp>
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>

#pragma comment(lib,"opencv_core220d.lib")
#pragma comment(lib,"opencv_highgui220d.lib")
#pragma comment(lib,"opencv_imgproc220d.lib")
using namespace std;
using namespace cv;
int main(int argc,char * argv[])
{
const char* imagename="D:\\T5Ab.tif";
Mat img=imread(imagename);
if(img.empty())
{
fprintf(stderr,"不能打开图像%s\n",imagename);
return -1;
}
imshow("image",img);  //显示图像
waitKey();
return 0;
}


using namespace std;
using namespace cv;

int _tmain(int argc, _TCHAR* argv[])
{

// 这里的第二个参数说明此时我们可以加载16bit/32bit的图像,除此之外
// 便都会被转换成8bit。一般情况下,图像都是8bit的。医疗图像为了保证
// 高精度,通常会使用更高的bit位数。
Mat src_img = imread("C:\\bird.png", CV_LOAD_IMAGE_ANYCOLOR);
if(src_img.empty())
{
cerr << "载入图像失败" << endl;
return -1;
}
// 显示图像,一个参数为窗口名称,第二个为要显示的图像
imshow("anycolor", src_img);

// 这里的第二个参数指明加载的图像为RGB图像,如果不是,则强制转换成RGB图像
src_img = imread("C:\\bird.png", CV_LOAD_IMAGE_COLOR);
if(src_img.empty())
{
cerr << "载入图像失败" << endl;
return -1;
}
imshow("color", src_img);

// 这里的第二个参数指明加载的图像为灰度图像,如果不是,则强制转换成灰度图像
src_img = imread("C:\\bird.png", CV_LOAD_IMAGE_GRAYSCALE);
if(src_img.empty())
{
cerr << "载入图像失败" << endl;
return -1;
}
imshow("grayscale", src_img);

// Note:我们也可以使用 <0, >0, =0的数字来替代imread()的第二个参数。但是,
// 不建议使用,因为单纯的数字显得莫名其妙,没有说明性。

// 这里是在等待敲击任意按键,程序会在此处进行事件循环。如果,此处没有调用此函数,
// 以上的窗口将会一闪而过。
waitKey(0);

return 0;
}


  

  
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: