日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

CImage与OpenCV兼容问题

發布時間:2023/12/18 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 CImage与OpenCV兼容问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

http://hi.baidu.com/gildor/item/fca3243bf3133549033edc91

CImage與OpenCV兼容問題

CImage類和OpenCV中的某個類沖突,在配置了OpenCV后,如果創建CImage類,會有如下問題:
error C2872: 'CvvImage' : ambiguous symbol
??????? could be 'c:\program files\opencv\otherlibs\highgui\highgui.h(438) : CvvImage'
??????? or 'd:\program files\visual studio 8\vc\atlmfc\include\atlimage.h(68): ATL::CvvImage'

可以考慮修改OpenCV的代碼,去掉其中對于CImage的定義。
打開\OpenCV\_make\opencv.sln工程
在OpenCV中,只有兩處用到了CImage的定義,
一個是highgui.h line 438; 直接把#define注釋掉。
另外一處是image.cpp,line 236 void CImage::DrawToHDC。
改為void CvvImage::

然后重新編譯,把掉用opencv CImage的地方改為CvvImage就可以了。有可能有個別工程編不通,如果不是由于修改引起的就沒有問題。

2.直接在 OpenCV頭文件后
#undef CImage #include <atlimage.h>






opencv 2.0以后的版本

使用OpenCV?? highgui.h中定義的CvvImage類可以很好的實現OpenCV和Windows MFC顯示接口。由于CvvImage實在highgui.h頭文件中聲明的,因此如果程序中需要使用,則必須在開頭包含頭文件

[cpp]?view plaincopy

  • #include?<highgui.h>??
  • CvvImage對應CImage宏:

    [cpp]?view plaincopy

  • #define?CImage?CvvImage???
  • ?

    注意事項:

    1.由于CImage太常見, 很容易造成沖突,因此建議不要使用該宏(可以直接刪去此宏定義)。

    2.參數中含有HDC(注:一種windows系統下定義的變量類型,用來描述設備描述表的句柄類型)類型的并不能保證移植到其他平臺,例如Show/DrawToHDC等。?

    ???????OpenCV 2.2.0版本中,CvvImage類不見了...為了能夠繼續使用這個類,下面把這個類的源代碼貼出來,使用的時候將該代碼加入到工程中便可以使用了。為了方便切換OpenCV的版本,這里用到了一些條件編譯宏,來保證代碼的靈活性。

    代碼見:

    http://blog.csdn.net/raocong2010/archive/2011/01/17/6146158.aspx

    總結

    以上是生活随笔為你收集整理的CImage与OpenCV兼容问题的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。