opencv学习笔记--使用opencv打开一张图片

时间:2024-03-26 11:33:34

               写于最前    本篇文章专针对linux 下 使用opencv3.0.0-alpha,若有不符合,可能出现程序编译问题。opencv学习笔记--使用opencv打开一张图片


                   正文

                                     

                                     第一步 使用qtcreate建立一个空程序,具体方法不详细写明,需要注意的问题是,有部分新手可能会出现找不到左侧的目录引导的情况,像这样

                                       opencv学习笔记--使用opencv打开一张图片

                                    解决方法是选中show siderbat,就会有左侧的目录引导出现了

                                     opencv学习笔记--使用opencv打开一张图片

                                    




   第二步 在使用opencv之前需要对建立的空程序配置pro文件


                                    首先打开终端输入pkg-config     --cflags    --libs opencv    做这个的主要目的是获得所需要的opencv库的位置。

                                   opencv学习笔记--使用opencv打开一张图片

                                     将得到的位置复制到空程序的pro文件里


                                     按照下面格式添加到pro文件下


                                     包含include的分一组,填上INCLUDEPATH+=


                                    尾缀. so   .a的分一组,填上LIBS+=


                                     opencv学习笔记--使用opencv打开一张图片



                                     这里可能会有比较希望了解pro文件的学习者,在这里贴一下详细解释pro文件的文章

                                     QT中PRO文件写法的详细介绍,很有用,很重要! - CSDN博客 http://blog.csdn.net/adriano119/article/details/5878169


                                      至此环境搭建完成,对于pro文件的更改,由于引用了全部的opencv库,以后的opencv程序可以通用,只要粘贴到以后程序的pro文件即可

                                        

                                    第三步

                                      在main.cpp文件中编写程序,这里给出一个c++的程序例子


#include <opencv2/opencv.hpp>


 #include<opencv2/imgproc/types_c.h>//这里头文件想要着重说一下由于opencv3.0.0-alpha中有一个没有头文件的cpp,所以为了不编译报错需要加上头文件


using namespace cv;//使用命名空间


int main()
{


        Mat img = imread("/home/wc/图片/lena.jpg");//    读取图片 这里文件地址写成你想打开的文件的地址或者放在执行目录里就不用写路径直接使用文件名字
        if(img.empty())
        {
                fprintf(stderr,"无法打开图片 \n");
                return -1;
       
        imshow("load image",img);   //在窗口中打开图片
        waitKey(100000);//等待时间,这里等待时间最好别填零,要不打开的窗口秒退


              return 0;
}