vs2019编译flann 编译后没有flann_cpp.lib和flann_cpp-gd.lib
时间: 2024-05-17 14:19:41 浏览: 305
在 VS2019 中编译 flann 库时,需要进行以下步骤:
1. 打开 flann.sln 解决方案文件。
2. 选择 Release 或 Debug 配置,然后右键单击 flann_cpp 应用程序项目,选择“属性”。
3. 在“属性页”中,选择“常规”,然后选择“输出目录”和“中间目录”,确保这些路径指向你想要的目录。
4. 在“C/C++”->“常规”下,将“附加包含目录”设置为 flann 库头文件所在的路径。
5. 在“链接器”->“常规”下,将“附加库目录”设置为 flann 库 lib 文件所在的路径。
6. 在“链接器”->“输入”下,将“附加依赖项”设置为 flann_cpp.lib 或 flann_cpp-gd.lib。
7. 最后,右键单击 flann_cpp 应用程序项目,选择“生成”。
如果你按照以上步骤进行编译,但仍然没有生成 flann_cpp.lib 和 flann_cpp-gd.lib 文件,可能是你的编译选项不正确。你可以检查一下编译选项是否正确,并根据需要进行修改。
相关问题
-- Could NOT find ClangFormat (missing: ClangFormat_EXECUTABLE ClangFormat_VERSION) (Required is at least version "14") -- Using CPU native flags for SSE optimization: -msse4.2 -mfpmath=sse -march=native -- Found OpenMP, spec date 201511 -- Eigen found (include: /usr/include/eigen3, version: 3.3.4) -- FLANN found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libflann_cpp.so) -- OpenNI found (version: 1.5.4.0, include: /usr/include/ni, lib: /usr/lib/libOpenNI.so;libusb::libusb) -- OpenNI2 found (version: 2.2.0.33, include: /usr/include/openni2, lib: /usr/lib/libOpenNI2.so;libusb::libusb) -- RealSense SDK 2 found (include: /usr/include, lib: realsense2::realsense2, version: 2.53.1) -- Checking for module 'metslib' -- No package 'metslib' found -- QHULL found (include: /usr/include, lib: /usr/lib/x86_64-linux-gnu/libqhull_r.so) -- The imported target "vtkRenderingPythonTkWidgets" references the file "/usr/lib/x86_64-linux-gnu/libvtkRenderingPythonTkWidgets.so" but this file does not exist. Possible reasons include: * The file was deleted, renamed, or moved to another location. * An install or uninstall procedure did not complete successfully. * The installation package was faulty and contained "/usr/lib/cmake/vtk-6.3/VTKTargets.cmake" but not all the files it references. -- The imported target "vtk" references the file "/usr/bin/vtk" but this file does not exist. Possible reasons include: * The file was deleted, renamed, or moved to another location. * An install or uninstall procedure did not complete successfully. * The installation package was faulty and contained "/usr/lib/cmake/vtk-6.3/VTKTargets.cmake" but not all the files it references. CMake Error at cmake/pcl_find_vtk.cmake:96 (message): Missing vtk modules: vtkRenderingOpenGL2;vtkRenderingContextOpenGL2 Call Stack (most recent call first): CMakeLists.txt:393 (include) -- Configuring incomplete, errors occurred! See also "/home/amovlab-z410/pcl/release/CMakeFiles/CMakeOutput.log". See also "/home/amovlab-z410/pcl/release/CMakeFiles/CMakeError.log".
这个错误表示在构建 PCL 时,CMake 找不到 VTK 库的某些模块,具体是 `vtkRenderingOpenGL2` 和 `vtkRenderingContextOpenGL2`。这可能是由于 VTK 没有正确安装或安装位置不正确导致的。你可以尝试重新安装 VTK 并确保路径正确,或者在 CMake 的配置中指定 VTK 库的路径。你也可以检查 `VTKTargets.cmake` 文件是否存在,并且文件路径是否正确。另外,CMake 还需要安装 ClangFormat 14 或更高版本,你可以在系统上安装该版本的 ClangFormat 或在 CMake 的配置中禁用 ClangFormat。如果问题仍然存在,请提供更多的详细信息,以便我能够更好地帮助你解决问题。
[ WARN:0@0.552] global c:\b\abs_d8ltn27ay8\croot\opencv-suite_1676452046667\work\opencv_contrib-4.6.0\modules\xfeatures2d\misc\python\shadow_sift.hpp (15) cv::xfeatures2d::SIFT_create DEPRECATED: cv.xfeatures2d.SIFT_create() is deprecated due SIFT tranfer to the main repository. https://github.com/opencv/opencv/issues/16736 E:\anaconda\envs\pytorch\lib\site-packages\scipy\optimize\_optimize.py:2417: RuntimeWarning: overflow encountered in scalar subtract tmp2 = (x - v) * (fx - fw) E:\anaconda\envs\pytorch\lib\site-packages\scipy\optimize\_optimize.py:2416: RuntimeWarning: overflow encountered in scalar subtract tmp1 = (x - w) * (fx - fv) E:\anaconda\envs\pytorch\lib\site-packages\scipy\optimize\_optimize.py:3386: RuntimeWarning: overflow encountered in scalar multiply t -= delta*temp*temp E:\anaconda\envs\pytorch\lib\site-packages\scipy\optimize\_optimize.py:2878: RuntimeWarning: overflow encountered in scalar subtract tmp2 = (xb - xc) * (fb - fa) E:\anaconda\envs\pytorch\lib\site-packages\scipy\optimize\_optimize.py:3384: RuntimeWarning: overflow encountered in scalar multiply t *= temp*temp
这个警告和运行时的错误是由不同的问题引起的。首先,警告是由于OpenCV库中的SIFT算法已经被移动到主存储库中,因此推荐使用`cv2.SIFT_create()`代替`cv2.xfeatures2d.SIFT_create()`。如果你使用的是OpenCV 4.4及以上版本,则可以直接使用`cv2.SIFT_create()`来避免这个警告。
至于运行时的错误,它可能是由于优化算法中的数值溢出引起的。您可以尝试使用其他优化算法来解决这个问题,例如BFGS或L-BFGS-B。示例代码如下所示:
```python
import cv2
import numpy as np
from scipy.optimize import minimize
# 读入全景图像
image1 = cv2.imread('image1.jpg')
image2 = cv2.imread('image2.jpg')
# 将图像转换为灰度图像
gray1 = cv2.cvtColor(image1, cv2.COLOR_BGR2GRAY)
gray2 = cv2.cvtColor(image2, cv2.COLOR_BGR2GRAY)
# 创建SIFT对象
sift = cv2.SIFT_create()
# 检测关键点和描述符
kp1, des1 = sift.detectAndCompute(gray1, None)
kp2, des2 = sift.detectAndCompute(gray2, None)
# 使用FLANN算法进行特征匹配
FLANN_INDEX_KDTREE = 0
index_params = dict(algorithm=FLANN_INDEX_KDTREE, trees=5)
search_params = dict(checks=50)
flann = cv2.FlannBasedMatcher(index_params, search_params)
matches = flann.knnMatch(des1, des2, k=2)
# 选择最佳匹配点
good_matches = []
for m, n in matches:
if m.distance < 0.7 * n.distance:
good_matches.append(m)
# 获取匹配点的坐标
points1 = np.float32([kp1[m.queryIdx].pt for m in good_matches]).reshape(-1, 1, 2)
points2 = np.float32([kp2[m.trainIdx].pt for m in good_matches]).reshape(-1, 1, 2)
# 定义损失函数
def loss_function(params):
H = np.array(params).reshape((3, 3))
transformed = cv2.warpPerspective(image2, H, (image1.shape[1], image1.shape[0]))
residual = np.sum(np.abs(transformed - image1))
return residual
# 初始参数
initial_params = np.zeros(9)
# 优化
res = minimize(loss_function, initial_params, method='L-BFGS-B')
# 计算单应矩阵
H = np.array(res.x).reshape((3, 3))
# 计算拼接后的图像
result = cv2.warpPerspective(image2, H, (image1.shape[1], image1.shape[0]))
result[0:image1.shape[0], 0:image1.shape[1]] = image1
# 显示结果
cv2.imshow('Result', result)
cv2.waitKey(0)
```
如果仍然遇到数值溢出的问题,可以尝试对输入图像进行调整,例如将图像的大小降低一些。
阅读全文
相关推荐
















