PCL(9)PLC庫和OpenCV庫中的FLANN衝突
今早在執行k-d tree的demo時,報錯,提示了一大堆未定義識別符號,未找到一些變數的錯誤。
加了很多標頭檔案都未得到解決。最終我選擇了把每個標頭檔案開啟檢查一下。就有了下面的內容。
提示我這個找不到。然後我就開啟了他的宣告,在下面顯示包含在general.h的標頭檔案中,我就
在檔案頭看了一下,發現包含了這個標頭檔案啊:
我把滑鼠點選在general.h上面,提示我這個路徑在pcl的路徑下,沒問題啊,然後我選中它,開啟這個文件,結果轉到了opencv路徑下。。。真狗血,掛著羊頭賣狗肉。
所以我開啟了屬性表,在包含目錄中,將pcl的包含路徑提到了opencv的路徑前面:
然後就解決了這個問題,不得不說狗血的很。
下面是今早用的程式碼:
#include <pcl/point_cloud.h>
#include <pcl/kdtree/kdtree_flann.h>
#include <iostream>
#include <vector>
#include <ctime>
int main(int argc, char** argv)
{
srand(time(NULL));
pcl::PointCloud<pcl::PointXYZ>::Ptr cloud(new pcl::PointCloud<pcl::PointXYZ>);
//點雲生成
cloud->width = 1000;//點雲數量
cloud->height = 1; //無序點雲
cloud->points.resize(cloud->width * cloud->height);
for (size_t i = 0; i < cloud->points.size(); ++i)
{
cloud->points[i].x = 1024.0f * rand() / (RAND_MAX + 1.0f);
cloud->points[i].y = 1024.0f * rand() / (RAND_MAX + 1.0f);
cloud->points[i].z = 1024.0f * rand() / (RAND_MAX + 1.0f);
}
pcl::KdTreeFLANN<pcl::PointXYZ>kdtree;//迴圈建立kd-tree物件
kdtree.setInputCloud(cloud); //設定搜尋空間即輸入點雲
pcl::PointXYZ searchPoint; //定義查詢點,並隨機賦值
searchPoint.x = 1024.0f * rand() / (RAND_MAX + 1.0f);
searchPoint.y = 1024.0f * rand() / (RAND_MAX + 1.0f);
searchPoint.z = 1024.0f * rand() / (RAND_MAX + 1.0f);
// k近鄰搜尋
int K = 10;
std::vector<int>pointIdxNKNSearch(K); //儲存查詢點近鄰索引
std::vector<float>pointNKNSquaredDistance(K);//儲存近鄰點對應平方距離
// 列印查詢點鄰域內的K個鄰近點
std::cout << "K nearest neighbor search at (" << searchPoint.x
<< " " << searchPoint.y
<< " " << searchPoint.z
<< ") with K=" << K << std::endl;
if (kdtree.nearestKSearch(searchPoint, K, pointIdxNKNSearch, pointNKNSquaredDistance) > 0)
{
for (size_t i = 0; i < pointIdxNKNSearch.size(); ++i)
std::cout << " " << cloud->points[pointIdxNKNSearch[i]].x
<< " " << cloud->points[pointIdxNKNSearch[i]].y
<< " " << cloud->points[pointIdxNKNSearch[i]].z
<< " (squared distance: " << pointNKNSquaredDistance[i] << ")" << std::endl;
}
// 在半徑r內搜尋近鄰
std::vector<int> pointIdxRadiusSearch; //儲存查詢點近鄰索引
std::vector<float> pointRadiusSquaredDistance;//儲存近鄰點對應平方距離
float radius = 256.0f * rand() / (RAND_MAX + 1.0f);
// 列印查詢點鄰域r範圍內的鄰近點
std::cout << "Neighbors within radius search at (" << searchPoint.x
<< " " << searchPoint.y
<< " " << searchPoint.z
<< ") with radius=" << radius << std::endl;
if (kdtree.radiusSearch(searchPoint, radius, pointIdxRadiusSearch, pointRadiusSquaredDistance) > 0)
{
for (size_t i = 0; i < pointIdxRadiusSearch.size(); ++i)
std::cout << " " << cloud->points[pointIdxRadiusSearch[i]].x
<< " " << cloud->points[pointIdxRadiusSearch[i]].y
<< " " << cloud->points[pointIdxRadiusSearch[i]].z
<< " (squared distance: " << pointRadiusSquaredDistance[i] << ")" << std::endl;
}
return 0;
}
相關文章
- 解決jquery和其他庫的衝突jQuery
- jQuery多庫衝突jQuery
- PCL(Point Cloud Library)的第三方庫簡介(boost,eigen,flann,vtk,qhull)Cloud
- 解決動態庫的符號衝突符號
- 如何防止jQuery庫不同版本之間的衝突jQuery
- IP衝突 資料庫時斷時續資料庫
- 文盤Rust -- 本地庫引發的依賴衝突Rust
- SSIS 資料庫排序規則衝突問題資料庫排序
- openGauss備庫wal-replay與query衝突
- 如何避免javascript中的衝突JavaScript
- POP Animation 和 layoutSubviews 的衝突View
- jQuery.noConflict() 方法—— jquery庫與其他庫衝突的問題解決jQuery
- OpenCV (iOS)中的腐蝕和膨脹(9)OpenCViOS
- 採用JSI解決不同類庫間的衝突(轉)JS
- PHP中的trait方法衝突PHPAI
- Activemq和Rabbitmq埠衝突MQ
- 程式碼審查中的暴力衝突
- 科研和工作並不衝突
- Elasticsearch和亞馬遜之間的衝突 - protocolElasticsearch亞馬遜Protocol
- 【筆記】Git 中的分支建立和衝突解決(命令列)筆記Git命令列
- 資料庫補丁衝突解決方案 (文件 ID 1674432.1)資料庫
- Laravel 6.0 的 predis 和 phpredis 衝突的原因LaravelRedisPHP
- svn檔案衝突,樹衝突詳解
- 多個PLC的IP衝突導致資料採集不上來怎麼辦?
- jQuery的$命名衝突jQuery
- iOS 開發中遇到的手勢衝突iOS
- 專案管理中的衝突是什麼?專案管理
- PPT中聲音“衝突”的解決方法
- 對等複製中的衝突檢測
- Eclipse中Egit衝突解決EclipseGit
- jquery和dwr的util.js方法衝突jQueryJS
- wsl docker 和 ubuntu 衝突問題DockerUbuntu
- Maven中解決依賴衝突的問題Maven
- 解決右滑返回手勢和UIScrollView中的手勢衝突UIView
- 為什麼docker 網段衝突會和宿主機衝突?原因分析和解決方案Docker
- Git多分支 遠端倉庫 協同開發以及解決衝突Git
- commit 衝突MIT
- 雜湊衝突