zoukankan      html  css  js  c++  java
  • Opencv学习1 :简单读取和显示

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

      

      

  • 相关阅读:
    线程池源码解析
    String与常量池
    spring循环依赖
    ConcurrentHashMap源码解析(JDK8)
    原子类源码分析
    web service和ejb的区别
    RPC
    hashcode()和equals()的区别
    关于json
    Lifecycle of jsf
  • 原文地址:https://www.cnblogs.com/susuzhao/p/3502232.html
Copyright © 2011-2022 走看看