iplimage* cvloadimage( const char* filename, int flags=cv_load_image_color );
第二個引數 flags 的選擇有三個,cv_load_image_color 預設(1),以三通道彩色影象顯示。原圖若是gary,原來的某點畫素值,複製到bgr中
cv_load_image_grayscale (0)以單通道影象顯示,載入。相當於做了cvcvtcolor bgr2gary。
cv_load_image_anycolor (-1)按照影象本身的通道數來顯示。
是opencv裡的顏色空間轉換函式
void cvcvtcolor( const cvarr* src, cvarr* dst, int code );
注意,無返回值!
src 輸入影象
dst 輸出影象
code 轉化型別,可選則引數有 cv_bgr2gray 注意匹配影象的通道數(3通轉1通)
cv_bgr2hsv 對於8點陣圖,需要將rgb值歸一化到0-1之間。這樣得到hsv圖中的h範圍才是0-360,s和v的範圍是0-1。
等。canny演算法,邊緣檢測。
void cvcanny( const cvarr* image,cvarr* edges,double threshold1,double threshold2, int aperture_size=3 );
注意,無返回值!
image 輸入要處理的圖,單通道。多通道要使用cvcvtcolor轉化
edges 輸出處理結果,單通道。
threshold1 (50)
threshold2 (150)這兩個閾值當中的小閾值用來控制邊緣連線,大的閾值用來控制強邊緣的初始分割。一般可以取()中值。
演算法原理:
void cvthreshold
( const cvarr* src,
cvarr* dst,
double threshold,
double max_value,
int threshold_type );
對單通道陣列
應用固定閾值操作
src 輸入影象 ,單通道,8-bit of 32-bit 浮點數
dst 輸出影象,必須與 src 的型別一致
double threshold 閾值
max_value
threshold_type 的可選項:cv_thresh_binary :if src(x,y)>threshold ,
dst(x,y) = max_value 結果是二值圖
esle
, dst(x,y)=0
cv_thresh_binary_inv:ifsrc(x,y)>threshold,dst(x,y) = 0
結果是二值圖
else,dst(x,y) = max_value
cv_thresh_trunc: if src(x,y)>threshold,dst(x,y) = max_value 結果是灰度圖
else,dst(x,y) = src(x,y)
cv_thresh_tozero: if src(x,y)>threshold,dst(x,y) = src(x,y)
else,dst(x,y) = 0
cv_thresh_tozero_inv: if src(x,y)>threshold,dst(x,y) = 0
else,dst(x,y) = src(x,y).
計算兩個陣列差的絕對值
void cvabsdiff( const cvarr* src1, const cvarr* src2, cvarr* dst );
src 輸入影象 ,單通道,8-bit of 32-bit 浮點數
dst 輸出影象,必須與 src 的型別一致
dst = abs( src1 - src2 ).
所有陣列
必須有相同的資料型別
or 相同的大小(或roi大小)
//可以用於簡單的背景減除
cvabsdiff(src,src_background,dst);
cvthreshold(dst,dst,100,255,cv_thresh_binary);//和背景圖比較,有超過100的畫素值跳變就認為是前景,未達到100認為是背景。
void cvsmooth( const cvarr* src, cvarr* dst,
int smoothtype=cv_gaussian,
int param1=3, int param2=0, double param3=0 ,double param4=0);
用於各種方式的濾波,型別由smoothtype決定
src:輸入影象
dst:輸出影象.
smoothtype: 平滑型別選擇 cv_blur_no_scale
int cvnamedwindow( const char* name, int flags=cv_window_autosize );
cv_window_autosize ( 1 ) : window更具攝像頭返回影象的大小自動設定視窗大小,不可滑鼠拉動改變。
( 0 ) : 可以拖動滑鼠改變視窗的大小,影象適應視窗大小。
for(y=0;y<5;++y)
}
OpenCV學習筆記(七)之Canny邊緣檢測
老規矩 妹妹鎮樓 灰度轉換 cvtcolor 計算梯度 sobel scharr 非最大訊號抑制 高低閾值輸出二值影象 t1,t2為閾值,凡是高於t2的都保留,凡是低於t1的都丟棄,從高於t2的畫素出發,凡是大於t1且相互連線的都保留。最終得到乙個輸出二值影象。推薦的高低閾值比值為t2 t1 3 1...
OpenCV學習筆記七 關於Mat類
1 建立乙個mat物件僅僅是建立了資訊頭部分,並沒有複製影象矩陣,而是通過矩陣指標指向某一位址而實現。eg mat a,c 僅建立資訊頭部分 mat b a 使用拷貝建構函式 c a 賦值運算子 以上建立的所有mat物件最終都指向同乙個也是唯一的乙個資料矩陣。雖然資訊頭不同,但是通過任何乙個物件所做...
OpenCV學習筆記之IplImage
首先學習下各引數的用法,以後慢慢完善 一 origin 在使用opencv顯示影象時會出現影象倒立的情況,iplimage的origin屬性有關係。origin為0表示頂左結構,即影象的原點是左上角,如果為1為左下角。一般從硬碟讀入的或者通過cvcreateimage方法建立的iplimage預設的...