2011-04-07 95 views
8

我目前用C做的OpenCV的項目++在哪裏尋找運動與Kinect和用它來提示幻燈片(SANS識別)。目前,我正在使用OpenCV顯示幻燈片(因爲我只用了大概一週的時間來完成)。它看起來不錯,而且速度很快。唯一的問題是,這將是一個大型的生產顯示,我真的不能讓窗口顯示(我正在談論窗口裝飾,如標題欄等)。採取OpenCV的窗口,並全屏

我需要擺脫標題欄。我做了大量的研究,並且發現你可以通過調用cvGetWindowHandle(「SlideShow」)來奇蹟般地抓住窗口句柄,但這是一個無效函數,所以我不知道我應該如何從中得到一個句柄來操縱。

我開發這個適用於Windows和Ubuntu的,因爲它最終會在Windows機器上,但我只能演示在筆記本電腦上運行Ubuntu。

如果有人能告訴我如何把窗口並使其與調整後的圖像,以填補最全屏如果不是在Windows或Ubuntu的整個屏幕,我將永遠感激。

+0

cvGetWindowHandle不'void' - 這是'無效*'所以你可以投給HWND – tom502 2011-04-07 09:51:03

回答

18

完整的文檔,我在Ubuntu 11.04使用OpenCV的2.1。在我的系統上,CV_WINDOW_FULLSCREEN和CV_WINDOW_AUTOSIZE標誌都映射到1 並且兩個標誌的行爲完全相同。它們給你一個固定大小的窗口,這對於AUTOSIZE標誌而言並不是FULLSCREEN。我認爲這兩個標誌是爲了不同的功能,雖然他們的simillar外觀是非常混亂。標誌CV_WINDOW_NORMAL映射到您使用的值0。它給你一個可調整大小的窗口,你可以最大化,但它不是一個全屏窗口。

編輯:我剛剛找到了解決辦法在another stachoverflow post。下面是從帖子裏面我的系統上很好工作的解決方案:

cvNamedWindow("Name", CV_WINDOW_NORMAL); 
    cvSetWindowProperty("Name", CV_WND_PROP_FULLSCREEN, CV_WINDOW_FULLSCREEN); 
    cvShowImage("Name", your_image); 

我得到一個真正的全屏,沒有標題欄等

+0

更新2017年CV :: setWindowProperty取代cvSetWindowProperty – 2017-10-22 13:57:53

2

可以使用CV :: setWindowProperty功能供您使用,只需將它設置爲CV_WINDOW_FULLSCREEN。在openCV-WIKI

+0

我試過了。它沒有明顯的區別。 – Tubbstosterone 2011-04-07 14:46:44

+3

想通了! cvNamedWindow的標誌必須設置爲零才能使用! – Tubbstosterone 2011-04-07 14:56:53

+1

又名'CV_WINDOW_NORMAL'在'cvNamedWindow( 「姓名」,CV_WINDOW_NORMAL);' – 2014-02-21 23:10:55