因爲OpenCV2.2的一個已知bug致使的上述問題,這個bug已經被修改到其對應分支上,可是官網上發佈的文件包並無包含這個修改。所以只要手動修改這個bug對應的代碼,問題即可解決。須要修改的文件位置: $(OpenCV Folder)\modules\highgui\src\precomp.hpp
找到以下代碼:ui
#if !defined WIN32 && !defined _WIN32
#include "cvconfig.h"
#else
void FillBitmapInfo( BITMAPINFO* bmi, int width, int height, int bpp, int origin );
#endifspa
將其修改成:it
#include "cvconfig.h"
#if defined WIN32 && defined _WIN32
void FillBitmapInfo( BITMAPINFO* bmi, int width, int height, int bpp, int origin );
#endif編譯
而後要作的就是用Cmake從新編譯一下OpenCV2.2的代碼,而後從新編譯一下OpenCV.sln。gui
固然,若是能在第一次編譯以前做出如上修改,相信能節省很多時間~module