什麼是影象以及opencv的基本操作
阿新 • • 發佈:2019-01-29
影象就是由一系列畫素點構成的影象
拿灰度圖(二通道影象)來說,它在計算機中的儲存形式就是一個二維矩陣,構成影象上所有畫素點的資訊,它其實就是一系列亮度不同的點構成,每個畫素點的亮度由該畫素所儲存的值決定(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;
今天就先到這裡啦