基本opencv2處理方法(二)

2021-07-15 05:51:31 字數 1392 閱讀 6822

使用filter2d進行鄰域計算:

void shape2d(const mat& image,mat& result)

//main函式呼叫

result.row(0).setto(scalar(0)); 可以將result矩陣的第0行所有畫素全部設定為0。

算術操作:

opencv過載了很多操作符:

你可以直接對它們進行運算,比如:

float weight ;

mat mat1,mat2,mat3;

mat3 = weight*mat1+mat2。

這都是支援的,可以直接運算。

定義感興趣區域:

mat image;

mat imageroi = image(rect(140,20,image.cols,image.rows));;

opencv2和opencv1矩陣型別之間的轉換。

畫直方圖:

//直方圖的部分

int _tmain(int argc, _tchar* argv)

ma*** hist;

int dims = 1;

float hranges = ;

const float* ranges =;//範圍值 這裡需要為const型別

intsize = 256;

int channels = 0;

calchist(&image,1,&channels,mat(),hist,dims,&size,ranges);

intscale = 1;

mat imageshow(size

*scale,size,cv_8u,scalar(0));

//獲得最大值和最小值

double minval = 0;

double maxval = 0;

minmaxloc(hist,&minval,&maxval,0,0);

int hpt = saturate_cast(0.9

*size);

for (int i=0;i<256;i++)

namedwindow("showimage");

imshow("showimage",imageshow);

opencv(2) 處理畫素值

opencv中使用mat資料型別表示影象,這是類似int float等傳統型別的一種opencv中定義的資料型別。opencv常見的資料型別 point 代表二維點,用於影象座標點。如point 20,80 scalar 表示4元素標量,常用於rgb顏色值,一般第四個引數用不到。畫素是由顏色空間或通...

基本opencv2處理方法(三) 基本濾波器

濾波是影象處理中的乙個基本操作。濾波去除影象中的雜訊,提取感興趣的特徵,允許影象重取樣。影象中的頻率和空域 空間域指用影象的灰度值來描述衣服影象,而頻域指用影象灰度值的變化來描述一幅影象。低通濾波器和高通濾波器的概念是在頻率中產生的。低通濾波器指去除影象中的高頻成分,而高通濾波器指去除影象中的低頻成...

opencv016 處理邊緣

卷積邊緣問題 l影象卷積的時候邊界畫素,不能被卷積操作,原因在於邊界畫素沒有完全跟 kernel 重疊,所以當 3x3濾波時候有 1個畫素的邊緣沒有被處理,5x5濾波的時候有 2個畫素的邊緣沒有被處理。處理邊緣 在卷積開始之前增加邊緣畫素,填充的畫素值為0或者 rgb黑色,比如 3x3在 四周各填充...