📅  最后修改于: 2023-12-03 15:09:28.005000             🧑  作者: Mango
cv::inRange
的未定义引用 - 汇编当使用OpenCV的cv::inRange
函数来进行像素值筛选时,有些人可能会遇到以下错误:
undefined reference to `cv::inRange(cv::_InputArray const&, cv::_InputArray const&, cv::_OutputArray const&)'
这是因为编译器无法找到cv::inRange
的实现。
这个错误通常是由于链接OpenCV库失败导致的。因此,我们需要确保正确链接库。
如果您使用的是CMake,可以使用以下命令来链接OpenCV库:
find_package(OpenCV REQUIRED)
link_libraries(${OpenCV_LIBS})
如果您正在使用命令行编译代码,则需要添加以下参数:
g++ your_file.cpp -o your_app `pkg-config --cflags --libs opencv`
另一个可能的问题是使用的OpenCV版本太低,该版本不支持cv::inrange
函数。
请确保您使用的是正确的OpenCV版本,并尝试更新到最新版本。
确保在代码中包含正确的头文件和命名空间。
#include <opencv2/opencv.hpp>
using namespace cv;
最后,请确保您正确安装了OpenCV。您可以验证是否已正确安装该库,打开终端并输入以下命令:
pkg-config --modversion opencv
如果运行时出错,则需要重新安装OpenCV。
cv::inRange
是OpenCV中非常常用的函数之一,可以让我们轻松地进行像素值筛选。在使用该函数时,如果遇到上述错误,请仔细排查上述问题,并确保正确链接OpenCV库,使用正确的OpenCV版本,包含正确的头文件和命名空间,以及正确安装OpenCV。