D:\opencv-3.4\opencv\build\include\opencv2\core\cvstd.hpp:648: error: undefined reference to `cv::String::deallocate()'
时间: 2023-12-03 15:03:32 浏览: 176
这个错误通常是由于编译器无法找到所需的库文件而导致的。您可以尝试以下几种方法来解决这个问题:
1. 确保您已经正确地链接了OpenCV库文件。您可以在编译命令中添加-lopencv_core -lopencv_highgui等选项来链接所需的库文件。
2. 检查您的OpenCV版本是否与您的代码兼容。如果您使用的是不兼容的版本,可能会导致链接错误。
3. 检查您的OpenCV安装是否正确。您可以尝试重新安装OpenCV并确保所有文件都正确安装。
以下是一个示例编译命令,其中假设您的OpenCV库文件位于/usr/local/lib中:
```shell
g++ -o myprogram myprogram.cpp -I/usr/local/include/opencv4 -lopencv_core -lopencv_highgui
```
相关问题
cv2.error: OpenCV(4.7.0) D:/a/opencv-python/opencv-python/opencv/modules/imgproc/src/median_blur.simd.hpp:870: error: (-210:Unsupported format or combination of formats) in function 'cv::opt_AVX2::medianBlur'
这个错误通常是由于OpenCV库的版本问题引起的。具体来说,可能是当前安装的OpenCV库不支持AVX2指令集,从而导致在使用`cv2.medianBlur()`函数进行中值平滑时出错。
解决这个问题的方法是更新或重新安装OpenCV库。可以尝试使用最新版本的OpenCV库,或者使用支持AVX2指令集的版本。在安装OpenCV库时,可以通过指定编译选项来选择是否支持AVX2指令集。
另外,也可以尝试使用其他的中值平滑函数进行图像处理,例如`scipy.signal.medfilt2d()`函数。这个函数使用中值滤波器对二维数组进行中值平滑处理,可以实现类似于`cv2.medianBlur()`函数的效果。但是需要注意的是,`scipy.signal.medfilt2d()`函数的输入格式和参数选项可能与`cv2.medianBlur()`函数有所不同,需要根据具体情况进行调整。
result = cv2.medianBlur(matrix, 5)报错cv2.error: OpenCV(4.7.0) D:/a/opencv-python/opencv-python/opencv/modules/imgproc/src/median_blur.simd.hpp:870: error: (-210:Unsupported format or combination of formats) in function 'cv::opt_AVX2::medianBlur'
这个错误可能是由于输入矩阵的格式不被支持所导致的。`cv2.medianBlur()`函数支持的输入矩阵格式为8位无符号整数类型(如`np.uint8`)。您可以检查一下输入矩阵的数据类型是否正确。此外,如果输入矩阵是彩色图像,请先将其转换为灰度图像再进行中值滤波操作。
另外,您还可以尝试更新 OpenCV 版本或重新安装 OpenCV,因为在某些情况下,这种错误可能与 OpenCV 版本不兼容有关。
阅读全文