昨天做了甚麼
查詢以下資料
cvNamedWindow 創建視窗
int cvNamedWindow( const char* name, int flags=CV_WINDOW_AUTOSIZE );
name 視窗的名字,
它被用來區分不同的視窗,並被顯示為視窗標題。
flags 視窗屬性標誌,
為1時表示會根據圖像自動調整視窗大小。
目前唯一支持的標誌是CV_WINDOW_AUTOSIZE。當這個標誌被設置後,
用戶不能手動改變視窗大小,
視窗大小會自動調整以適合被顯示圖像(參考cvShowImage)。
函數cvNamedWindow創建一個可以放置圖像和trackbar的視窗。
被創建的視窗可以通過它們的名字被引用。
如果已經存在這個名字的視窗,這個函數將不做任何事情。
今天要做甚麼?
詳讀並理解程式碼
並詢問老師問題
進而做好視訊畫面
和一個矩行用來判別矩行內的顏色
會遇到甚麼問題?
一開始矩形無法順利架出
但是後來有解決的
要問老師要怎麼判別顏色
現在一點一滴的製作當中要更加努力才行!!
解決:
============
想要知道視訊中某點顏色 (只要給定 i(高度) 跟 j(寬度))
for(int i=0;i<img->height;i++){
unsigned char *ptr=img->imageData + img->widthStep * i;
for(int j=0;j<img->width;j++){
int b=ptr[j*3];
int g=ptr[j*3+1];
int r=ptr[j*3+2];
}
}
簡化的結果:
unsigned char *ptr=img->imageData + img->widthStep*i;
int b=ptr[j*3];
int g=ptr[j*3+1];
int r=ptr[j*3+2];
(第45頁的作法)
(第43頁的作法)
CvScalar color = cvGet2D(img, i, j);//建議
(第41頁的作法)
unsigned char r=CV_MAT_ELEM(image, unsigned char, i, j);
double g=CV_MAT_ELEM(image, double, i, j);//怪怪的
double b=CV_MAT_ELEM(image, double, i, j);//怪怪的
對話結束
沒有留言:
張貼留言