1. 程式人生 > >什麼是影象以及opencv的基本操作

什麼是影象以及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<<endl;

今天就先到這裡啦