2014-05-19 49 views
0

我是C++編程新手,目前正在研究一個應用程序,可以清除除最大圖片外的所有對象。我正在尋找基於包圍盒教程我發現here窗口類型字符

做對象大小檢測我正在考慮實現一段代碼與可以在鏈接中找到的代碼,所以我可以設置'邊界框'技術與實況視頻饋送而不是圖像,但後來我遇到了這個位在這裏:

/// Create Window 
char* source_window = "Source"; 
namedWindow(source_window, CV_WINDOW_AUTOSIZE); 
imshow(source_window, src); 

爲什麼讓這個char類型,而不是隻是做了如下所示?

Mat edges; 
namedWindow("edges",1); 

正如我前面所述IM真的剛開始使用C++和OpenCV,很抱歉編碼,如果這是一個愚蠢的問題。

在此先感謝

+0

沒有真正的理由 - 但它確保您無法通過在imshow調用中錯誤地輸入錯誤名稱。 –

回答

0

你是對治療這種代碼爲可疑。 source_window的類型錯誤。

它當前被定義爲指向char的指針。然而它使用字符串文字進行初始化,該文字的類型爲const char[]。雖然存在從陣列[]轉換爲指針*的轉換,但沒有轉換會丟失const

你爲這個常量分配一個名字的原因通常是因爲你在兩個地方使用了相同的常量。鍵入兩次會增加您輸入拼寫錯誤並結束兩個不同字符串的風險。這可以像拼寫第二個字符串「source」一樣簡單。