opencv(c++)-图像基本操作

参考:
1、https://docs.opencv.org/3.2.0/
2、https://github.com/opencv/opencv/

安装参考:
http://blog.csdn.net/poem_qianmo/article/details/19809337

使用的环境:
Windows10 x64
vs2015
opencv3.2.0

vs2015 安装插件 image watch
工具–>扩展和更新–>联机 搜索 image watch 安装 重启
视图–>其他窗口–>image watch 打开该窗口


Load and Display an Image

  • Load an image (using cv::imread )
  • Create a named OpenCV window (using
    cv::namedWindow )
  • Display an image in an OpenCV window (using cv::imshow )

#include 
#include 
#include 
#include 
#include 

using namespace cv;
using namespace std;

int main(int argc, char** argv)
{
    //String imageName("../data/HappyFish.jpg"); // by default  使用String构造函数设置路径
    //或
    string imageName = "messi5.jpg";
    if (argc > 1)
    {
        imageName = argv[1];
    }
    Mat image;
    image = imread(imageName, IMREAD_COLOR); // Read the file
    if (image.empty())                      // Check for invalid input
    {
        cout << "Could not open or find the image" << std::endl;
        return -1;
    }
    namedWindow("Display window", WINDOW_AUTOSIZE); // Create a window for display.
    imshow("Display window", image);                // Show our image inside it.
    waitKey(0); // Wait for a keystroke in the window  Zero means to wait forever
    destroyAllWindows();
    return 0;
}

//cmd 运行: xxx.exe "图像路径"
  • core section, 库的基本定义部分
  • highgui模块,因为这包含输入和输出操作的功能
  • IMREAD_UNCHANGED (<0) 按原样加载图像(包括alpha通道(如果存在)
  • IMREAD_GRAYSCALE ( 0) 以灰度格式图像加载
  • IMREAD_COLOR (>0) BGR格式加载 (opencv彩色图像格式为BGR格式 而不是 RGB)
  • WINDOW_AUTOSIZE是唯一支持的一个,如果你不使用Qt后端。 在这种情况下,窗口大小将占用显示的图像的大小。 不允许调整图像大小!
  • WINDOW_NORMAL Qt你可以使用它来允许窗口调整大小。 图像将根据当前窗口大小自行调整大小。 通过使用| 您还需要指定是否希望图像保持其纵横比(WINDOW_KEEPRATIO)(WINDOW_FREERATIO)。

Load, Modify, and Save an Image

  • 加载图像 cv::imread
  • BGR到灰度转换 cv::cvtColor
  • 保存图像到磁盘 (using cv::imwrite )

#include 

using namespace cv;

int main(int argc, char** argv)
{
    char* imageName = argv[1]; //图像路径
    Mat image; //新建图像对象
    image = imread(imageName, 1); //1 表示BGR格式读取
    if (argc != 2 || !image.data)  //image.empty()
    {
        printf(" No image data \n ");
        return -1;
    }
    Mat gray_image;
    cvtColor(image, gray_image, COLOR_BGR2GRAY); //颜色通道转换 BGR-->Gray
    imwrite("../../images/Gray_Image.jpg", gray_image); //保存图像
    namedWindow(imageName, WINDOW_AUTOSIZE); //新建窗口
    namedWindow("Gray image", WINDOW_AUTOSIZE);
    imshow(imageName, image); //与窗口对应
    imshow("Gray image", gray_image);
    waitKey(0); //0ms 表示无限等待 知道用户按下按键
    destroyAllWindows(); //关闭所有窗口
    return 0;
}

注:

  • 在DEBUG模式下,只能存为BMP格式,选择JPG或PNG时,总是弹出异常
  • 在RELEASE模式下,以上几种格式都行

你可能感兴趣的:(opencv)