本文编写于 138 天前,最后修改于 132 天前,其中某些信息可能已经过时。

OpenCV与数字图像

  • 在使用OpenCV做视觉或数字图像预处理时,需要读入相机采集来的图像或视频信息。图像数据的获取主要有以下几个步骤:

    1. 光学相机(CCD/CMOS)采集图像信号;
    2. 图像采集卡将连续的图像信号转换成计算机能够识别和处理的数字信号,即采样、量化操作;
    3. 经处理的数字信号通过源编码、压缩、信道编码、调制、解调、解码、复原等操作传输并存储在计算机中;
    4. 计算机软件再读取存储在硬盘上的图像信息,进行下一步处理。
  • 因此,利用OpenCV对视频和图像信息进行读取和显示操作尤为重要。

代码

#include <string>
#include <opencv2\opencv.hpp>

using namespace cv;
using namespace std;

int main()
{
    string imagename = "xx.jpg";  //此处需要填写绝对地址,测试时使用相对地址会出错。

    //读入图像
    Mat img_r = imread(imagename);

    //如果读入图像失败
    if (img_r.empty())
    {
        return -1;
    }
    //创建窗口
    namedWindow("image", 1);
    //显示图像
    imshow("image", img_r);

    //等待按键,按键盘任意键返回
    waitKey();
    return 0;

    //string imagename = "lena.jpg";  处是可以使用相对地址,使用环境为OpenCV 2.4.3
    //图片为meinv.jpg置于代码文件所在文件夹的上一级文件夹中,string imagename = "..\\meinv.jpg"  图片可正常显示。
    //需提醒注意的是 双引号“” 中出现的第一个 反斜杠 \ 被视作转义字符
}