91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 11KB
    文件類型: .cpp
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-06
  • 語言: C/C++
  • 標簽:

資源簡介

對于霍夫直線一直是應用在圖片中,因此此種方法可以應用在點云數據中。具體原理以及依賴的頭文件和主函數見鏈接:https://mp.csdn.net/console/editor/html/106173138 數據部分見鏈接:

資源截圖

代碼片段和文件信息

//HOUGH_LINE.cpp文件
#include?“HOUGH_LINE.h“
HOUGH_LINE::HOUGH_LINE()
{
}

HOUGH_LINE::~HOUGH_LINE()
{
cloud->clear();
result_.clear();
}
void?HOUGH_LINE::VoxelGrid_(float?size_?PointCloud::Ptr?&voxel_cloud)?//定義降采樣函數(常用略過)
{
PointCloud::Ptr?tem_voxel_cloud(new?PointCloud);
VoxelGrid?vox;
vox.setInputCloud(cloud);
vox.setLeafSize(size_?size_?size_);
vox.filter(*tem_voxel_cloud);
cloud?=?tem_voxel_cloud;
voxel_cloud?=?tem_voxel_cloud;
point_num?=?cloud->size();
}
//在霍夫空間里邊
void?HOUGH_LINE::draw_hough_spacing()?//定義繪制霍夫空間劃分函數
{
visualization::PCLPlotter?*plot_(new?visualization::PCLPlotter(“My?plotter“));//定義繪圖對象
plot_->setBackgroundColor(1?1?1);//設置圖形背景顏色(0,0,0)背景為黑色
plot_->settitle(“hough?space“);//設置整體標題
plot_->setXtitle(“angle“);//設置X軸坐標標題記為角度
plot_->setYtitle(“rho“);//設置Y坐標標題記為ρ
vector>data_;//vector的元素類型是pair類型
double?x_resolution1?=?M_PI?/?181;//1度=Π/180;1弧度=180/Π(橫坐標軸從0到180一共181個數)
double?a_1?b_1;//將降采樣后點云數據的xy坐標賦值給a_1b_1
for?(int?i_point?=?0;?i_point? {
a_1?=?cloud->points[i_point].x;
b_1?=?cloud->points[i_point].y;
for?(int?i?=?0;?i? {
data_.push_back(make_pair(i*x_resolution1?a_1?*?cos(i*x_resolution1)?+?b_1?*?sin(i*x_resolution1)));//data_的元素存儲的是(θ,ρ)已知xyθ計算得到ρ
//訪問(輸出)存放在vector的成員(pair方式存在),便于觀察理解
//cout?< }
plot_->addPlotData(data_?“line“?vtkChart::LINE);//XY均為double型的向量;第一個參數多項式或者要繪制的函數(點)、第二個曲線名稱、第三個繪制線
data_.clear();
}
//plot_->setShowLegend(false);//不顯示曲線名稱(也就是對應上述addPlotData第二個參數)
plot_->setShowLegend(true);//顯示曲線名稱
plot_->plot();//繪制曲線
}
//尋找極大值(首先根據xy還有劃分的0到180的θ,計算出每個xy點是落進哪個格子里邊)
void?HOUGH_LINE::HOUGH_line(int?x_setp_num?double?y_resolution?int?grid_point_number_threshold?vector&K_?vector&B_?int?line_num)?
{
vector>all_point_row_col;//所有的行列數
vector?Grid_Index;
getMinMax3D(*cloud?point_min?point_max);//獲取點云中的最大最小值XYZ
//觀察一下輸出的最大值xy分別是多少
//cout?< double?x_resolution?=?M_PI?/?x_setp_num;//Π/181(x軸的分辨率)
int?raster_rows?raster_cols;//柵格行,列
raster_rows?=?ceil((M_PI?-?0)?/?x_resolution);//相當于等于x_setp_num=181
//查看一下輸出的行有多少行
//cout?< raster_cols?=?ceil((point_max.y?+?point_max.x)?/?y_resolution)?*?2;//y_resolution=0.5
//查看一下輸出的列有多少列
//cout?< MatrixXi?all_row_col(raster_cols?raster_rows);//存儲每個格網內的個數?//是個矩陣raster_cols矩陣行數、?Xi表示元素是int類型?
all_row_col.setZero();//將這個表達式中所有數設為0
//查看一下這步定義的是啥?
//cout?<????//下邊輸出2970,181,537570
//cout?< MatrixXd?all_row_col_mean(raste

評論

共有 條評論

相關資源