題目:(p104)
使用cvcmp()建立乙個掩碼。載入乙個真實的影象。使用cvsplit()將影象分割成紅,綠,藍三個單通道影象。
a.找到並顯示綠圖。
b.轉殖這個綠圖兩次(分別命名為clone1和clone2)。
c.求出這個綠色平面的最大值和最小值。
d.將clone1的所有元素賦值為theash=(unsigned char)((最大值-最小值)/2.0)。
e.將clone2的所有元素複製為0,然後呼叫函式cvcmp(green_image,clone1,clone2,cv_cmp_ge)。現在clone2將是乙個標識綠圖中值超過thresh的掩碼影象。
f.最後,使用cvsubs(green_image,thresh/2,green_image,clone2)函式並顯示結果。
解答:
#include
#include
int main(int argc, const
char** argv)
iplimage* rimg = cvcreateimage(cvgetsize(srcimg), srcimg->depth, 1);
iplimage* gimg = cvcreateimage(cvgetsize(srcimg), srcimg->depth, 1);
iplimage* bimg = cvcreateimage(cvgetsize(srcimg), srcimg->depth, 1); //建立單通道r,g,b影象
iplimage* clone1 = cvcreateimage(cvgetsize(srcimg), srcimg->depth, 1);
iplimage* clone2 = cvcreateimage(cvgetsize(srcimg), srcimg->depth, 1);
double green_maxpixel = 0;
double green_minpixel = 0; //綠色平面最大最小值
double thresh; //閾值thresh
cvsplit(srcimg, rimg, gimg, bimg, 0); //拆分3通道
//-------------------a小題 ------------------
cvnamedwindow("greenimage0");
cvshowimage("greenimage0", gimg);
//-------------------b小題---------------------
cvcopy(gimg, clone1);
cvcopy(gimg, clone2); //copy the gimg to clone1 and clone2
//-----------------c小題求綠色平面最大最小值-----------------
cvminmaxloc(gimg, &green_maxpixel, &green_minpixel);
//-------------------d小題-------------------------------
thresh = (unsigned
char)(green_maxpixel - green_minpixel) / 2.0;
cvset(clone1, cvscalar(thresh));
//----------------------e小題-----------------------
cvzero(clone2);
cvcmp(gimg, clone1, clone2, cv_cmp_ge);
//---------------------------f小題-------------------
cvsubs(gimg, cvscalar(thresh / 2), gimg, clone2);
cvnamedwindow("greenimage1");
cvshowimage("greenimage1", gimg);
cvwaitkey(0);
cvreleaseimage(&srcimg);
cvreleaseimage(&rimg);
cvreleaseimage(&gimg);
cvreleaseimage(&bimg);
cvdestroywindow("greenimage0");
cvdestroywindow("greenimage1");
return
0;}
《學習OpenCV》課後習題解答7
題目 p105 建立乙個結構,結構中包含乙個整數,乙個cvpoint和乙個 cvrect 稱結構體為 my struct a.寫兩個函式 void write my strct cvfilestorage fs,const char name,my struct ms 和 void read my ...
Accelerated C 習題解答 第6章
部分解答參考了網上已有解答 ex.6 1 include include include include include using namespace std string size type width constvector v vectorframe constvector v ret.pu...
python程式設計快速上手之課後習題解答
略 建立regex物件時,為什麼常用原始字串?使用原始字串r,表示式較為簡潔,如果不加r,則需要寫成re.compile d 來匹配多個數字 search 方法返回什麼?search返回乙個match物件,使用match物件的group方法,返回實際匹配的文字分組 通過match物件,如何獲得匹配該...