#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 ",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; }