上传文件至 /

main
贾召钱 2024-06-11 19:07:52 +08:00
parent f23783e77c
commit 6b07338ff2
3 changed files with 1565 additions and 0 deletions

124
config.py Normal file
View File

@ -0,0 +1,124 @@
import argparse
parser = argparse.ArgumentParser()
parser.add_argument('--acreage', type=int, default=100, help='Minimum wall area')
parser.add_argument('--length', type=int, default=80, help='Minimum value of wall length in line detection')
parser.add_argument('--k', type=int, default=45, help='door width')
parser.add_argument('--m', type=int, default=200, help='wall length')
parser.add_argument('--log-imgs', type=int, default=16, help='number of images for W&B logging, max 100')
parser.add_argument('--workers', type=int, default=8, help='maximum number of dataloader workers')
parser.add_argument('--distance', type=int, default=25, help='Minimum distance between wall endpoints')
'''语义物体参数设置'''
parser.add_argument('--min_samples_115', type=int, default=4, help='Minimum number of samples')
parser.add_argument('--max_eps_115', type=int, default=4, help='Maximum cluster radius')
parser.add_argument('--shape_115', type=int, default=1, help='Shape 0 is a circle, shape 1 is a rectangle')
parser.add_argument('--size_115', type=int, default=1, help='0 means by outline, 1 means regular rectangle')
parser.add_argument('--min_samples_116', type=int, default=10, help='Minimum number of samples')
parser.add_argument('--max_eps_116', type=int, default=15, help='Maximum cluster radius')
parser.add_argument('--shape_116', type=int, default=0, help='Shape 0 is a circle, shape 1 is a rectangle')
parser.add_argument('--size_116', type=int, default=0, help='0 means by outline, 1 means regular rectangle')
parser.add_argument('--min_samples_117', type=int, default=10, help='Minimum number of samples')
parser.add_argument('--max_eps_117', type=int, default=15, help='Maximum cluster radius')
parser.add_argument('--shape_117', type=int, default=0, help='Shape 0 is a circle, shape 1 is a rectangle')
parser.add_argument('--size_117', type=int, default=0, help='0 means by outline, 1 means regular rectangle')
parser.add_argument('--min_samples_118', type=int, default=16, help='Minimum number of samples')
parser.add_argument('--max_eps_118', type=int, default=28, help='Maximum cluster radius')
parser.add_argument('--shape_118', type=int, default=1, help='Shape 0 is a circle, shape 1 is a rectangle')
parser.add_argument('--size_118', type=int, default=0, help='0 means by outline, 1 means regular rectangle')
parser.add_argument('--min_samples_119', type=int, default=16, help='Minimum number of samples')
parser.add_argument('--max_eps_119', type=int, default=28, help='Maximum cluster radius')
parser.add_argument('--shape_119', type=int, default=1, help='Shape 0 is a circle, shape 1 is a rectangle')
parser.add_argument('--size_119', type=int, default=0, help='0 means by outline, 1 means regular rectangle')
parser.add_argument('--min_samples_120', type=int, default=16, help='Minimum number of samples')
parser.add_argument('--max_eps_120', type=int, default=24, help='Maximum cluster radius')
parser.add_argument('--shape_120', type=int, default=1, help='Shape 0 is a circle, shape 1 is a rectangle')
parser.add_argument('--size_120', type=int, default=0, help='0 means by outline, 1 means regular rectangle')
parser.add_argument('--min_samples_121', type=int, default=4, help='Minimum number of samples')
parser.add_argument('--max_eps_121', type=int, default=15, help='Maximum cluster radius')
parser.add_argument('--shape_121', type=int, default=1, help='Shape 0 is a circle, shape 1 is a rectangle')
parser.add_argument('--size_121', type=int, default=0, help='0 means by outline, 1 means regular rectangle')
parser.add_argument('--min_samples_150', type=int, default=8, help='Minimum number of samples')
parser.add_argument('--max_eps_150', type=int, default=20, help='Maximum cluster radius')
parser.add_argument('--shape_150', type=int, default=1, help='Shape 0 is a circle, shape 1 is a rectangle')
parser.add_argument('--size_150', type=int, default=0, help='0 means by outline, 1 means regular rectangle')
parser.add_argument('--min_samples_151', type=int, default=10, help='Minimum number of samples')
parser.add_argument('--max_eps_151', type=int, default=28, help='Maximum cluster radius')
parser.add_argument('--shape_151', type=int, default=1, help='Shape 0 is a circle, shape 1 is a rectangle')
parser.add_argument('--size_151', type=int, default=0, help='0 means by outline, 1 means regular rectangle')
parser.add_argument('--min_samples_152', type=int, default=10, help='Minimum number of samples')
parser.add_argument('--max_eps_152', type=int, default=60, help='Maximum cluster radius')
parser.add_argument('--shape_152', type=int, default=1, help='Shape 0 is a circle, shape 1 is a rectangle')
parser.add_argument('--size_152', type=int, default=0, help='0 means by outline, 1 means regular rectangle')
parser.add_argument('--min_samples_153', type=int, default=12, help='Minimum number of samples')
parser.add_argument('--max_eps_153', type=int, default=10, help='Maximum cluster radius')
parser.add_argument('--shape_153', type=int, default=1, help='Shape 0 is a circle, shape 1 is a rectangle')
parser.add_argument('--size_153', type=int, default=0, help='0 means by outline, 1 means regular rectangle')
parser.add_argument('--min_samples_154', type=int, default=4, help='Minimum number of samples')
parser.add_argument('--max_eps_154', type=int, default=8, help='Maximum cluster radius')
parser.add_argument('--shape_154', type=int, default=1, help='Shape 0 is a circle, shape 1 is a rectangle')
parser.add_argument('--size_154', type=int, default=1, help='0 means by outline, 1 means regular rectangle')
parser.add_argument('--min_samples_155', type=int, default=8, help='Minimum number of samples')
parser.add_argument('--max_eps_155', type=int, default=40, help='Maximum cluster radius')
parser.add_argument('--shape_155', type=int, default=1, help='Shape 0 is a circle, shape 1 is a rectangle')
parser.add_argument('--size_155', type=int, default=0, help='0 means by outline, 1 means regular rectangle')
parser.add_argument('--min_samples_156', type=int, default=4, help='Minimum number of samples')
parser.add_argument('--max_eps_156', type=int, default=60, help='Maximum cluster radius')
parser.add_argument('--shape_156', type=int, default=1, help='Shape 0 is a circle, shape 1 is a rectangle')
parser.add_argument('--size_156', type=int, default=0, help='0 means by outline, 1 means regular rectangle')
parser.add_argument('--min_samples_200', type=int, default=8, help='Minimum number of samples')
parser.add_argument('--max_eps_200', type=int, default=6, help='Maximum cluster radius')
parser.add_argument('--shape_200', type=int, default=1, help='Shape 0 is a circle, shape 1 is a rectangle')
parser.add_argument('--size_200', type=int, default=1, help='0 means by outline, 1 means regular rectangle')
parser.add_argument('--min_samples_201', type=int, default=4, help='Minimum number of samples')
parser.add_argument('--max_eps_201', type=int, default=4, help='Maximum cluster radius')
parser.add_argument('--shape_201', type=int, default=1, help='Shape 0 is a circle, shape 1 is a rectangle')
parser.add_argument('--size_201', type=int, default=1, help='0 means by outline, 1 means regular rectangle')
parser.add_argument('--min_samples_202', type=int, default=20, help='Minimum number of samples')
parser.add_argument('--max_eps_202', type=int, default=60, help='Maximum cluster radius')
parser.add_argument('--shape_202', type=int, default=1, help='Shape 0 is a circle, shape 1 is a rectangle')
parser.add_argument('--size_202', type=int, default=0, help='0 means by outline, 1 means regular rectangle')
parser.add_argument('--min_samples_203', type=int, default=2, help='Minimum number of samples')
parser.add_argument('--max_eps_203', type=int, default=80, help='Maximum cluster radius')
parser.add_argument('--shape_203', type=int, default=1, help='Shape 0 is a circle, shape 1 is a rectangle')
parser.add_argument('--size_203', type=int, default=0, help='0 means by outline, 1 means regular rectangle')
parser.add_argument('--min_samples_204', type=int, default=4, help='Minimum number of samples')
parser.add_argument('--max_eps_204', type=int, default=60, help='Maximum cluster radius')
parser.add_argument('--shape_204', type=int, default=1, help='Shape 0 is a circle, shape 1 is a rectangle')
parser.add_argument('--size_204', type=int, default=0, help='0 means by outline, 1 means regular rectangle')
parser.add_argument('--min_samples_205', type=int, default=2, help='Minimum number of samples')
parser.add_argument('--max_eps_205', type=int, default=14, help='Maximum cluster radius')
parser.add_argument('--shape_205', type=int, default=1, help='Shape 0 is a circle, shape 1 is a rectangle')
parser.add_argument('--size_205', type=int, default=0, help='0 means by outline, 1 means regular rectangle')
parser.add_argument('--min_samples_209', type=int, default=4, help='Minimum number of samples')
parser.add_argument('--max_eps_209', type=int, default=4, help='Maximum cluster radius')
parser.add_argument('--shape_209', type=int, default=1, help='Shape 0 is a circle, shape 1 is a rectangle')
parser.add_argument('--size_209', type=int, default=1, help='0 means by outline, 1 means regular rectangle')
opt = parser.parse_args()

1388
main.py Normal file

File diff suppressed because it is too large Load Diff

53
map.cpp Normal file
View File

@ -0,0 +1,53 @@
#include"ros/ros.h"
#include "nav_msgs/OccupancyGrid.h"
#include "std_msgs/String.h"
#include <opencv2/opencv.hpp>
#include <opencv2/highgui.hpp>
#include <stdio.h>
void callback(const nav_msgs::OccupancyGrid::ConstPtr& mapmsg)
{
int height,width,k=0;
// cv::Mat map(2000,2000,CV_8UC1);
height = mapmsg->info.height;
width = mapmsg->info.width;
cv::Mat map(height,width,CV_8UC1);
std::vector<int> compression_params;
compression_params.push_back(cv::IMWRITE_PNG_COMPRESSION);
compression_params.push_back(0);
for (int i = 0; i < height; i++)
{
for(int j = 0; j < width; j++)
{
map.at<uchar>(i,j) = mapmsg->data[k];
k++;
}
}
cv::imshow("map",map);
if (cv::waitKey(1)==27)
{
cv::imwrite("map.png", map, compression_params);
exit(0);
}
}
int main(int argc, char *argv[])
{
//init_keyboard();
setlocale(LC_ALL,"");
ros::init(argc,argv,"listener_map");
ros::NodeHandle nh;
ros::Subscriber map_sub = nh.subscribe<nav_msgs::OccupancyGrid>("map",1,callback);
ros::spin();
return 0;
}