OpenCV 笔记(04)— OpenCV2 升级到 OpenCV3/CV4 的改动(去掉 CV_前缀、使用新的前缀替换、使用新的命名空间宏)
1. 由于宏名稱的變更照成的“未聲明的標(biāo)識(shí)符”系列問(wèn)題
有時(shí)候,遇到此類問(wèn)題加入一句 #include <cv.h> 便可以讓 OpenCV3 或者 OpenCV4 也能認(rèn)識(shí)一些 CV_ 前綴的宏,將問(wèn)題解決掉,因?yàn)橛胁簧?OpenCV1 的宏依然在 OpenCV3 或者 OpenCV4 的 cv.h 頭文件中有定義。
問(wèn)題:在 OpenCV3/ OpenCV4 的環(huán)境下運(yùn)行 OpenCV2 中寫(xiě)的程序,報(bào) error C2065: <CV_WINDOW AUT0SIZE,:未聲明的標(biāo)識(shí)符 系列錯(cuò)誤。
分析: OpenCV3/OpenCV4 取消了 OpenCV1 中殘留的 CV_ 式的宏前綴命名規(guī)范,對(duì)這些 CV_ 前綴的宏使用了新的命名規(guī)范。這里有幾種情況要分類討論。
1.1 直接去掉“CV_” 前綴
在這種情況下,比較典型的有如下一些函數(shù)。
-
namedWindow函數(shù)中,例如將CV_WINDOW_AUTOSIZE改為WINDOW_AUTOSIZE -
threshold函數(shù)中,例如將CV_THRESH_BINARY改為THRESH_BINARY -
line函數(shù)等一系列繪圖函數(shù)中,CV_FILLED改為FILLED -
remap函數(shù)中,CV_INTER_LINEAR改為INTER_LINEAR -
在鼠標(biāo)操作函數(shù)
SetMouseCallback中,將CV_EVENT_LBUTTONUP改為EVENT_LBUTTONUP、
CV_EVENT_LBUTTONDOWN改為EVENT_LBUTTONDOWN,
CV_EVENT_FLAG_LBUTTON改為EVENT_FLAG_ LBUTTON、
CV_EVENT_MOUSEMOVE改為EVENT_MOUSEMOVE -
HoughCircles函數(shù)中, 將CV_HOUGH_GRADIENT改成HOUGH_GRADIENT。 -
inpaint函數(shù)中,將CV_INPAINT_TELEA改為INPAINT_TELEA, 將CV_INPAINT_NS改為INPAINT_NS -
matchTemplate函數(shù)中,將CV_TM_SQDIFF改為TM_SQDIFF、CV_TM_SQDIFF_NORMED改為TM_SQDIFF_NORMED -
在
imwrite函數(shù)相關(guān)使用中,將CV_IMWRITE_PNG_COMPRESSION改成IMWRITE_PNG_COMPRESSION -
設(shè)置攝像頭尺寸的時(shí)候,將
CV_CAP_PROP_FRAME_WIDTH改為CAP_PROP_FRAME_WIDTH、CV_CAP_PR0P_FRAME_HEIGHT改為CAP_PR0P_FRAME_HEIGHT
1.2 使用新的前綴替換
在這種情況下,比較典型的有如下一些函數(shù)。
line函數(shù)等一系列繪圖函數(shù)中,CV_AA改為LINE_AAcvtColor函數(shù)中顏色空間轉(zhuǎn)換系的宏,全替換為COLOR_前綴,如CV BGR2HSV改為COLOR_BGR2HSVnormalize函數(shù)中,將CV_MINMAX改為NORM MINMAXmorphologyEx函數(shù)中的宏,全部替換為MORPH_前綴,如CV_MOP_OPEN改為MORPH_OPENthreshold函數(shù)中的宏,全部替換為THRESH_前綴,如將CV_THRESH_BINARY改THRESH_BINARY
1.3 使用新命名空間的宏
在這種情況下, 比較典型的有如下一些函數(shù)。
-
TermCriteria函數(shù)中,CV_TERMCRIT_EPS改為TermCriteria::EPS、CV TERMCRIT ITER改為TermCriteria::MAX_ITER -
CascadeClassifier::detectMultiScale函數(shù)中,CV_HAAR_SCALE_IMAGE改為CASCADE_SCALE_IMAGE。
2. 其它細(xì)節(jié)
-
features2d.hpp頭文件路徑的更改。將#include<opencv2/nonfree/features2d.hpp>改為#include <opencv2/features2d.hpp> -
core.hpp頭文件路徑更改。將#include <opencv2/core/core.hpp>改為#include <opencv2/core.hpp> -
用
format進(jìn)行格式化輸出時(shí), 將format(r,"python")改成format(r, Formatter::FMT_PYTHON) -
定義尺寸時(shí),將
cvSize(-1,-1)改為Size(-1,-1) -
在表示顏色時(shí),將
CV_RGB改為Scalar
總結(jié)
以上是生活随笔為你收集整理的OpenCV 笔记(04)— OpenCV2 升级到 OpenCV3/CV4 的改动(去掉 CV_前缀、使用新的前缀替换、使用新的命名空间宏)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 2022-2028年中国文化旅游业投资分
- 下一篇: OpenCV 笔记(05)— openc