學習筆記 OpenCV C (三)

2021-10-02 15:31:58 字數 2034 閱讀 7742

調整影象亮度和對比度

理論畫素變換---點操作

鄰域操作---區域

做影象的卷積,影象特徵提取,影象梯度計算,影象更深入模式匹配,模糊,平滑等

調整影象亮度和對比度屬於畫素變換---點操作

g(i,j) = a*f(i,j)+p  其中a>0,p是增益變數

重要api

mat new_image = mat::zeros(image.size(),image.type());建立一張跟原影象大小和型別一致的空白影象、畫素值初始化為0

saturate_cast(value)確保值大小範圍為0~255之間

mat.at(y,x)[index]=value給每個畫素點每個通道賦值

#include#includeusing namespace cv;

int main(int argc,char** ar**)

char input_win = "input image";

namedwindow(input_win,cv_window_autosize);

imshow(input_win,src);

int height = src.rows;

int width = src.cols;

dst = mat::zeros(src.size(),src.type());

float alpha = 1.2;

float beta = 30;

for(int row = 0; row < height; row++)else if(src.channels()==1)}}

char output_title = "contrast and brightness change demo";

namedwindow(output_title,cv_window_autosize);

imshow(output_title,dst);

waitkey(0);

return 0;

}

繪製形狀與文字

使用cv::point與cv::scalar

point表示2d平面上乙個點x,y

point p;

p.x = 10;

p.y = 8;

orp = point(10,8);

scalar表示四個元素的向量

scalar(a,b,c);//a = blue,b = green,c = red表示rgb三個通道

繪製線、矩形、圓、橢圓等基本幾何形狀

畫線cv::line(line_4\line_8\line_aa)注意:line_aa反鋸齒

畫橢圓cv::ellipse

畫矩形cv::rectangle

畫圓cv::circle

畫填充cv::fillpoly

隨機生成與繪製文字

#include#includeusing namespace std;

using namespace cv;

mat bgimage;

const char* drawdemo_win = "draw shapes and text demo";

//畫線

void mylines();

//畫矩形

void myrectangle();

//畫橢圓

void myellipse();

//畫圓

void mycircle();

//畫多邊形

void mypolygen();

//畫隨機線

void randomlinedemo();

int main(int argc,char** ar**)

line(bgimage,pt1,pt2,color,1,8);

imshow("line demo",bg);

}}

隨機數生成cv::rng

生成高斯隨機數gaussian(double sigma)

生成正態分佈隨機數uniform(int a,int b)

opencv C 學習筆記

1.opencv實際上是在c 的基礎上增加的庫,本質上還是c 2.mat 乙個類,用來建立物件來儲存影象的資訊 3.namedwindow 新建乙個顯示視窗 5.cout 輸出到工作台 6.image.rows cols 影象的行數 列數 7.waitkey 0 等待使用者按鍵事件 8.median...

學習筆記 OpenCV C 一)

22 38 載入影象 cv imread 功能是載入影象檔案成為乙個mat物件,其中第乙個引數表示影象檔案名稱 第二個引數表示載入的影象是什麼型別,支援常見的三個引數值 imread unchanged 0 表示載入原圖,不做任何改變 imread grayscale 0 表示把原圖作為灰度影象載入...

學習筆記 OpenCv C (四)

影象的模糊 模糊原理 smooth blur是影象處理中最簡單和常用的操作之一 使用該操作的原因之一就為了給影象預處理時候減低雜訊 使用smooth blur操作器背後是數學的卷積計算 g i,j 求和 f i k,j i h k,i 通常這些卷積運算元計算都是線性操作,所以有叫線性濾波 假設有6x...