什么是图像以及opencv的基本操作

图像就是由一系列像素点构成的图像

拿灰度图(二通道图像)来说,它在计算机中的存储形式就是一个二维矩阵,构成图像上所有像素点的信息,它其实就是一系列亮度不同的点构成,每个像素点的亮度由该像素所储存的值决定(0-255);
多通道图像(俗称彩色图像)的存储方式是三维矩阵,并不是说它是立体的图形,而是它的每个像素点由RGB三基色构成,(opencv中为BGR),所以在二维像素点分布上多了三基色比例的通道。(是不是可以建立一种能储存三维图像的照片,就相当于是把很多照片当成其截面叠在一起??)
图像也是一个像int、double的一个类,用于保存图像信息的变量,称之为Mat类,在C语言中需要手动开辟和释放内存,而在C++中则有了自动内存管理系统。

#include"iostream"
#include"opencv2/core.hpp"

using namespace std;
using namespace cv;

int main()
{
    int a;
    Mat img(3, 3, CV_8UC3, Scalar(0, 0, 255));
    cout << "img=" << img << endl;
    cin << a;
}
```运行结果
![这里写图片描述](https://img-blog.csdn.net/20180808221102784?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3Blbl8yQg==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)

加了cin是因为不加的话执行窗口就会一闪而过。。。(侧面反映我是真的小白。。好像可以执行完让窗口一直等待,可是我也不知道该怎么操作)
所以,这就是像素点,因为opencv中采用BGR方式,所以这是一个长宽都为3个像素点的红色图片。用CV_8UC(n)的方法指定通道数,n<=4的时候不用加括号。
create()函数创建对象






<div class="se-preview-section-delimiter">div>

这里写代码片
“`

Mat img(2,3,CV_8UC3,scalar(0,0,255));
img.creat(5,5,CV_8UC(5));//释放原图像创建新图像,特别地,create()创建的图像无法指定初始值
cout<<img<

今天就先到这里啦

你可能感兴趣的:(opencv,计算机视觉,初学者)