CGAL学习之路(三):CGAL读写点云

article/2025/9/21 12:57:55

文章目录

  • 1 CGAL创建点云
    • 1.1 insert方式
    • 1.2 迭代器方式
  • 2 CGAL读点云
    • 2.1 读取XYZ点云
    • 2.2 读取PLY点云
    • 2.3 ifstream读取XYZ \ PLY点云
  • 3 CGAL输出点坐标
    • 3.1 输出点云所有坐标
    • 3.2 输出某一点的坐标
    • 3.3 输出XYZ坐标
  • 4 CGAL保存点云(XYZ | PLY)
  • 5 添加法向量字段
    • 5.1 在已有点上添加法向量信息
    • 5.2 添加新的 XYZ + Normal
  • 6 删除XYZ外的属性字段,只保留XYZ

1 CGAL创建点云

1.1 insert方式

代码:

#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Point_set_3.h>typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel;
typedef Kernel::Point_3 Point;				//三维点(double类型)
typedef CGAL::Point_set_3<Point> Point_set;	//三维点云using namespace std;int main()
{Point_set point_set;		//创建一个三维点云容器//insert方式插入每一点坐标point_set.insert(Point(1, 2, 3));point_set.insert(Point(4, 5, 6));point_set.insert(Point(7, 8, 9));cout << "->点云的点数为:" << point_set.size() << endl;return 0;
}

输出结果:

->点云的点数为:3

1.2 迭代器方式

代码:

#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Point_set_3.h>typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel;
typedef Kernel::Point_3 Point;				//三维点(double类型)
typedef CGAL::Point_set_3<Point> Point_set;	//三维点云using namespace std;int main()
{Point_set point_set;							//创建一个三维点云容器//迭代器方式插入每一点坐标point_set.resize(3);							//设置容器大小Point_set::iterator it = point_set.begin();		//设置迭代器初始位置point_set.point(*it + 0) = Point(1, 2, 3);point_set.point(*it + 1) = Point(4, 5, 6);point_set.point(*it + 2) = Point(7, 8, 9);cout << "->点云的点数为:" << point_set.size() << endl;return 0;
}

输出结果:

->点云的点数为:3

2 CGAL读点云

2.1 读取XYZ点云

代码:

#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Point_set_3.h>typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel;
typedef Kernel::Point_3 Point;				//三维点(double类型)
typedef CGAL::Point_set_3<Point> Point_set;	//三维点云using namespace std;int main()
{Point_set point_set;		//创建一个三维点云容器if (!CGAL::IO::read_XYZ("oni.xyz", point_set)){cerr << "\a->点云文件不存在!\n" << endl;return -1;}cout << "->加载点云的点数:" << point_set.size() << endl;return 0;
}

输出结果:

->加载点云的点数:1435

2.2 读取PLY点云

代码:

#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Point_set_3.h>typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel;
typedef Kernel::Point_3 Point;				//三维点(double类型)
typedef CGAL::Point_set_3<Point> Point_set;	//三维点云using namespace std;int main()
{Point_set point_set;		//创建一个三维点云容器if (!CGAL::IO::read_PLY("oni.ply", point_set)){cerr << "\a->点云文件不存在!\n" << endl;return -1;}cout << "->加载点云的点数:" << point_set.size() << endl;return 0;
}

输出结果:

->加载点云的点数:1435

2.3 ifstream读取XYZ \ PLY点云

代码:

#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Point_set_3.h>typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel;
typedef Kernel::Point_3 Point;				//三维点(double类型)
typedef CGAL::Point_set_3<Point> Point_set;	//三维点云using namespace std;int main()
{//--------- 读取XYZ点云 ----------Point_set point_set_xyz;		//创建一个三维XYZ点云容器ifstream ifs_xyz("oni.xyz", std::ios_base::binary);if (!ifs_xyz){cerr << "\a->点云文件不存在!\n" << endl;return -1;}ifs_xyz >> point_set_xyz;ifs_xyz.close();cout << "->加载XYZ点云的点数:" << point_set_xyz.size() << endl;//--------- 读取PLY点云 ----------Point_set point_set_ply;		//创建一个三维PLY点云容器ifstream ifs_ply("oni.ply", std::ios_base::binary);if (!ifs_ply){cerr << "\a->点云文件不存在!\n" << endl;return -1;}ifs_ply >> point_set_ply;ifs_ply.close();cout << "->加载PLY点云的点数:" << point_set_ply.size() << endl;return 0;
}

输出结果:

->加载XYZ点云的点数:1435
->加载PLY点云的点数:1435

3 CGAL输出点坐标

CGAL采用迭代器的方式输出点云坐标。

3.1 输出点云所有坐标

代码:

#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Point_set_3.h>typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel;
typedef Kernel::Point_3 Point;				//三维点(double类型)
typedef CGAL::Point_set_3<Point> Point_set;	//三维点云using namespace std;int main()
{//-------------------- 创建点云 --------------------Point_set point_set;		//创建一个三维点云容器//迭代器方式插入每一点坐标point_set.resize(5);							//设置容器大小Point_set::iterator it = point_set.begin();		//设置迭代器初始位置point_set.point(*it + 0) = Point(1, 2, 3);point_set.point(*it + 1) = Point(4, 5, 6);point_set.point(*it + 2) = Point(7, 8, 9);cout << "->点云的点数为:" << point_set.size() << endl;//==================== 创建点云 ====================//-------------------- 输出坐标 --------------------for (Point_set::iterator it = point_set.begin(); it != point_set.end(); ++it){cout << point_set.point(*it) << endl;}//==================== 输出坐标 ====================return 0;
}

输出结果:

->点云的点数为:5
1 2 3
4 5 6
7 8 9
0 0 0
0 0 0

3.2 输出某一点的坐标

代码:

#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Point_set_3.h>typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel;
typedef Kernel::Point_3 Point;				//三维点(double类型)
typedef CGAL::Point_set_3<Point> Point_set;	//三维点云using namespace std;int main()
{//-------------------- 创建点云 --------------------Point_set point_set;		//创建一个三维点云容器//迭代器方式插入每一点坐标point_set.resize(5);							//设置容器大小Point_set::iterator it = point_set.begin();		//设置迭代器初始位置point_set.point(*it + 0) = Point(1, 2, 3);point_set.point(*it + 1) = Point(4, 5, 6);point_set.point(*it + 2) = Point(7, 8, 9);cout << "->点云的点数为:" << point_set.size() << endl;//==================== 创建点云 ====================//----------------- 输出某一点坐标 ------------------int i = 1;cout << "->第" << i + 1 << "个点的坐标为:" << point_set.point(*it + i) << endl;//================= 输出某一点坐标 ==================return 0;
}

输出结果:

->点云的点数为:5
->2个点的坐标为:4 5 6

3.3 输出XYZ坐标

代码:

#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Point_set_3.h>typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel;
typedef Kernel::Point_3 Point;				//三维点(double类型)
typedef CGAL::Point_set_3<Point> Point_set;	//三维点云using namespace std;int main()
{//-------------------- 创建点云 --------------------Point_set point_set;		//创建一个三维点云容器//insert方式插入每一点坐标point_set.insert(Point(1, 2, 3));point_set.insert(Point(4, 5, 6));point_set.insert(Point(7, 8, 9));cout << "->点云的点数为:" << point_set.size() << endl;//==================== 创建点云 ====================//------------------ 输出XYZ坐标 -------------------for (Point_set::iterator it = point_set.begin(); it != point_set.end(); ++it){cout << "第" << *it + 1 << "个点坐标:" << point_set.point(*it) << endl;cout << "	x:" << point_set.point(*it)[0]<< "	y:" << point_set.point(*it)[1]<< "	z:" << point_set.point(*it)[2]<< endl;}//================== 输出XYZ坐标 ===================return 0;
}

输出结果:

->点云的点数为:31个点坐标:1 2 3x:1 y:2 z:32个点坐标:4 5 6x:4 y:5 z:63个点坐标:7 8 9x:7 y:8 z:9

4 CGAL保存点云(XYZ | PLY)

代码:

#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Point_set_3.h>typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel;
typedef Kernel::Point_3 Point;				//三维点(double类型)
typedef CGAL::Point_set_3<Point> Point_set;	//三维点云using namespace std;int main()
{//-------------------- 创建点云 --------------------Point_set point_set;		//创建一个三维点云容器//insert方式插入每一点坐标point_set.insert(Point(1, 2, 3));point_set.insert(Point(4, 5, 6));point_set.insert(Point(7, 8, 9));cout << "->点云的点数为:" << point_set.size() << endl;//==================== 创建点云 ====================//------------------ 保存XYZ点云 ------------------CGAL::IO::write_XYZ("write_XYZ.xyz", point_set);//================== 保存XYZ点云 ==================//------------------ 保存PLY点云 ------------------CGAL::IO::write_PLY("write_PLY.ply", point_set);//================== 保存PLY点云 ==================return 0;
}

输出结果:

在这里插入图片描述

5 添加法向量字段

5.1 在已有点上添加法向量信息

代码:

#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Point_set_3.h>typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel;
typedef Kernel::Point_3 Point;				//三维点(double类型)
typedef Kernel::Vector_3 Vector;			//用于添加法向量
typedef CGAL::Point_set_3<Point> Point_set;	//三维点云using namespace std;//打印点云字段信息
void print_point_set(const Point_set &point_set)
{if (point_set.has_normal_map()){for (Point_set::const_iterator it = point_set.begin(); it != point_set.end(); ++it){cout << "第" << *it + 1 << "个点坐标:" << point_set.point(*it)<< ",法向量为:" << point_set.normal(*it)<< endl;}}else{for (Point_set::const_iterator it = point_set.begin(); it != point_set.end(); ++it){cout << "第" << *it + 1 << "个点坐标:" << point_set.point(*it) << endl;}}
}int main()
{//-------------------- 创建点云 --------------------Point_set point_set;		//创建一个三维点云容器//insert方式插入每一点坐标point_set.insert(Point(1, 2, 3));point_set.insert(Point(4, 5, 6));point_set.insert(Point(7, 8, 9));print_point_set(point_set);//==================== 创建点云 ====================//----------------- 添加法向量字段 -----------------point_set.add_normal_map();		//添加法向量,默认为(0,0,0)print_point_set(point_set);//================= 添加法向量字段 =================//----------------- 法向量字段赋值 -----------------Point_set::iterator it_n = point_set.begin();point_set.normal(*(it_n++)) = Vector(2.5, 2.5, 0.6);point_set.normal(*(it_n++)) = Vector(0.5, 1.7, 0.9);point_set.normal(*(it_n++)) = Vector(0.9, 1.8, 1.9);print_point_set(point_set);//================= 法向量字段赋值 =================return 0;
}

输出结果:

1个点坐标:1 2 32个点坐标:4 5 63个点坐标:7 8 91个点坐标:1 2 3,法向量为:0 0 02个点坐标:4 5 6,法向量为:0 0 03个点坐标:7 8 9,法向量为:0 0 01个点坐标:1 2 3,法向量为:2.5 2.5 0.62个点坐标:4 5 6,法向量为:0.5 1.7 0.93个点坐标:7 8 9,法向量为:0.9 1.8 1.9

5.2 添加新的 XYZ + Normal

代码:

#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Point_set_3.h>typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel;
typedef Kernel::Point_3 Point;				//三维点(double类型)
typedef Kernel::Vector_3 Vector;			//用于添加法向量
typedef CGAL::Point_set_3<Point> Point_set;	//三维点云using namespace std;//打印点云字段信息
void print_point_set(const Point_set &point_set)
{if (point_set.has_normal_map()){for (Point_set::const_iterator it = point_set.begin(); it != point_set.end(); ++it){cout << "第" << *it + 1 << "个点坐标:" << point_set.point(*it)<< ",法向量为:" << point_set.normal(*it)<< endl;}}else{for (Point_set::const_iterator it = point_set.begin(); it != point_set.end(); ++it){cout << "第" << *it + 1 << "个点坐标:" << point_set.point(*it) << endl;}}
}int main()
{//-------------------- 创建点云 --------------------Point_set point_set;		//创建一个三维点云容器//insert方式插入每一点坐标point_set.insert(Point(1, 2, 3));point_set.insert(Point(4, 5, 6));point_set.insert(Point(7, 8, 9));cout << "->创建点云:" << endl;print_point_set(point_set);//==================== 创建点云 ====================//----------------- 添加法向量字段 -----------------point_set.add_normal_map();		//添加法向量,默认为(0,0,0)cout << "->添加法向量字段:" << endl;print_point_set(point_set);//================= 添加法向量字段 =================//----------------- 法向量字段赋值 -----------------Point_set::iterator it_n = point_set.begin();point_set.normal(*(it_n++)) = Vector(2.5, 2.5, 0.6);point_set.normal(*(it_n++)) = Vector(0.5, 1.7, 0.9);point_set.normal(*(it_n++)) = Vector(0.9, 1.8, 1.9);cout << "->法向量字段赋值:" << endl;print_point_set(point_set);//================= 法向量字段赋值 =================//----------------- 添加XYZ+Normal -----------------///方式1:point_set.insert(Point(10, 11, 12), Vector(4, 5, 6));cout << "->添加XYZ+Normal方式1:" << endl;print_point_set(point_set);///方式2:Point_set::iterator new_item = point_set.insert(Point(13, 14, 15));point_set.normal(*new_item) = Vector(7, 8, 9);cout << "->添加XYZ+Normal方式2:" << endl;print_point_set(point_set);//================= 删除XYZ外的属性 =================return 0;
}

输出结果:

->创建点云:
第1个点坐标:1 2 32个点坐标:4 5 63个点坐标:7 8 9
->添加法向量字段:
第1个点坐标:1 2 3,法向量为:0 0 02个点坐标:4 5 6,法向量为:0 0 03个点坐标:7 8 9,法向量为:0 0 0
->法向量字段赋值:
第1个点坐标:1 2 3,法向量为:2.5 2.5 0.62个点坐标:4 5 6,法向量为:0.5 1.7 0.93个点坐标:7 8 9,法向量为:0.9 1.8 1.9
->添加XYZ+Normal方式1:
第1个点坐标:1 2 3,法向量为:2.5 2.5 0.62个点坐标:4 5 6,法向量为:0.5 1.7 0.93个点坐标:7 8 9,法向量为:0.9 1.8 1.94个点坐标:10 11 12,法向量为:4 5 6
->添加XYZ+Normal方式2:
第1个点坐标:1 2 3,法向量为:2.5 2.5 0.62个点坐标:4 5 6,法向量为:0.5 1.7 0.93个点坐标:7 8 9,法向量为:0.9 1.8 1.94个点坐标:10 11 12,法向量为:4 5 65个点坐标:13 14 15,法向量为:7 8 9

6 删除XYZ外的属性字段,只保留XYZ

在上一节代码的基础上,最后面添加以下代码:

point_set.clear_properties();

完整代码如下:

#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Point_set_3.h>typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel;
typedef Kernel::Point_3 Point;				//三维点(double类型)
typedef Kernel::Vector_3 Vector;			//用于添加法向量
typedef CGAL::Point_set_3<Point> Point_set;	//三维点云using namespace std;//打印点云字段信息
void print_point_set(const Point_set &point_set)
{if (point_set.has_normal_map()){for (Point_set::const_iterator it = point_set.begin(); it != point_set.end(); ++it){cout << "第" << *it + 1 << "个点坐标:" << point_set.point(*it)<< ",法向量为:" << point_set.normal(*it)<< endl;}}else{for (Point_set::const_iterator it = point_set.begin(); it != point_set.end(); ++it){cout << "第" << *it + 1 << "个点坐标:" << point_set.point(*it) << endl;}}
}int main()
{//-------------------- 创建点云 --------------------Point_set point_set;		//创建一个三维点云容器//insert方式插入每一点坐标point_set.insert(Point(1, 2, 3));point_set.insert(Point(4, 5, 6));point_set.insert(Point(7, 8, 9));cout << "->创建点云:" << endl;print_point_set(point_set);//==================== 创建点云 ====================//----------------- 添加法向量字段 -----------------point_set.add_normal_map();		//添加法向量,默认为(0,0,0)cout << "->添加法向量字段:" << endl;print_point_set(point_set);//================= 添加法向量字段 =================//----------------- 法向量字段赋值 -----------------Point_set::iterator it_n = point_set.begin();point_set.normal(*(it_n++)) = Vector(2.5, 2.5, 0.6);point_set.normal(*(it_n++)) = Vector(0.5, 1.7, 0.9);point_set.normal(*(it_n++)) = Vector(0.9, 1.8, 1.9);cout << "->法向量字段赋值:" << endl;print_point_set(point_set);//================= 法向量字段赋值 =================//----------------- 添加XYZ+Normal -----------------///方式1:point_set.insert(Point(10, 11, 12), Vector(4, 5, 6));cout << "->添加XYZ+Normal方式1:" << endl;print_point_set(point_set);///方式2:Point_set::iterator new_item = point_set.insert(Point(13, 14, 15));point_set.normal(*new_item) = Vector(7, 8, 9);cout << "->添加XYZ+Normal方式2:" << endl;print_point_set(point_set);//================= 添加XYZ+Normal =================//----------------- 删除XYZ外的属性 -----------------point_set.clear_properties();cout << "->删除XYZ外的属性:" << endl;print_point_set(point_set);//================= 删除XYZ外的属性 =================return 0;
}

输出结果:

->创建点云:
第1个点坐标:1 2 32个点坐标:4 5 63个点坐标:7 8 9
->添加法向量字段:
第1个点坐标:1 2 3,法向量为:0 0 02个点坐标:4 5 6,法向量为:0 0 03个点坐标:7 8 9,法向量为:0 0 0
->法向量字段赋值:
第1个点坐标:1 2 3,法向量为:2.5 2.5 0.62个点坐标:4 5 6,法向量为:0.5 1.7 0.93个点坐标:7 8 9,法向量为:0.9 1.8 1.9
->添加XYZ+Normal方式1:
第1个点坐标:1 2 3,法向量为:2.5 2.5 0.62个点坐标:4 5 6,法向量为:0.5 1.7 0.93个点坐标:7 8 9,法向量为:0.9 1.8 1.94个点坐标:10 11 12,法向量为:4 5 6
->添加XYZ+Normal方式2:
第1个点坐标:1 2 3,法向量为:2.5 2.5 0.62个点坐标:4 5 6,法向量为:0.5 1.7 0.93个点坐标:7 8 9,法向量为:0.9 1.8 1.94个点坐标:10 11 12,法向量为:4 5 65个点坐标:13 14 15,法向量为:7 8 9
->删除XYZ外的属性:
第1个点坐标:1 2 32个点坐标:4 5 63个点坐标:7 8 94个点坐标:10 11 125个点坐标:13 14 15

http://chatgpt.dhexx.cn/article/NHaxN4NF.shtml

相关文章

【C++】CGAL学习笔记

一、HELLO WORLD 1. 官方文档&#xff1a;CGAL-TUTORIALS 2. 所有CGAL头文件都在子目录中。所有CGAL类和函数都在命名空间中。类以大写字母开头&#xff0c;全局函数以小写字母开头&#xff0c;常量全部大写。 3. 几何图元&#xff0c;如点、线等都定义在内核Kernel中 #inc…

自动化测试方案设计和实现

编辑推荐: 本文主要介绍了几种测试类型需求&#xff0c;以及自动化测试方案设计和实现&#xff0c;希望对您的学习有所帮助。 本文来自于知乎&#xff0c;由火龙果软件Alice编辑、推荐。 如果对软件测试、接口、自动化、性能测试、测试开发、面试经验交流。感兴趣可以8101198…

测试方案模板

&#xff08;iwebshop项目&#xff09;测试方案 &#xff08;仅供参考&#xff09; 文档版本控制 文档版本号 日期 作者 审核人 说明 V1.0 2017/11/24 陈.. 创建文档 1. 概述 【软件的错误是不可避免的&#xff0c;所以必须经过严格的测试。通过对…

测试方案/测试计划/测试报告,经常弄混要怎么区分?

目录 前言 1、测试方案和测试计划的区别 2、测试方案和测试计划什么时候编写 3、测试方案 4、测试计划 5、测试报告 前言 测试方案和测试计划&#xff0c;测试报告几乎都是每个测试人员都必须掌握的。但有时经常搞混&#xff0c;特别是测试方案和测试计划。 1、测试方案…

自动化测试方案

自动化测试体系方案 方案1全编写代码流程 UI自动化&#xff1a; 使用python或java&#xff0c;配合selenium库及pytest框架做UI自动化测试。&#xff08;通过selenium的webdriver驱动&#xff0c;驱使浏览器&#xff09; 1. WebDriver API&#xff08;基于Java、Python&…

SpringBoot - 应用程序测试方案

文章目录 PreSpring Boot 中的测试解决方案测试 Spring Boot 应用程序初始化测试环境SpringBootTestSpringBootTest - webEnvironment RunWith 注解与 SpringRunner 执行测试用例使用 DataJpaTest 注解测试数据访问组件Service层和Controller的测试使用 Environment 测试配置信…

测试计划和测试方案有什么区别?

一、测试计划 1、测试计划是什么&#xff1f; 测试计划是组织管理层面的文件&#xff0c;从组织管理的角度对一次测试活动进行规划。对测试全过程的测试范围、组织、资源、原则等进行规定和约束&#xff0c;并制定测试全过程各个阶段的任务分配以及时间进度安排&#xff0c;并…

测试方案的设计及模板

测试方案设计及模板 测试方案设计概括xx测试方案_模板1.引言2.测试策略3.测试设计4.测试资源5.输出文档6.修订记录推荐书籍 测试方案设计概括 xx测试方案_模板 1.引言 1.1目的 根据需要实现的需求与软件的设计架构&#xff0c;设计满足测试目标的方案&#xff0c;用来指导测试…

软件测试方案设计

文章目录 1、软件框架2、测试方案设计2.1、测试覆盖2.2、功能测试和压力测试2.3、自动化测试2.4、持续集成 1、软件框架 站在软件的角度&#xff0c;一个系统通常可以分为以下四个层次&#xff1a; 应用软件层(app layer)。用户重点自己开发的应用代码&#xff0c;例如我们的运…

又发现个新的全网资源搜索神器

平常用谷歌百度搜资源一个个翻很费劲&#xff0c;这里分享几个最新可用的全网网盘资源搜索神器&#xff0c;在公众号苏生不惑后台回复神器 获取软件下载地址。 混合盘 这个app聚合搜索多个网盘资源&#xff0c;可从数十个网盘搜索网站中检索出你需要的资源&#xff0c;app非常简…

magnetX,资源搜索神器!老司机快上车!

magnetX 中文版是一款非常好用的资源搜索神器&#xff0c;界面干净简洁并且不会有弹窗。而且可以通过关键字搜索&#xff0c;或者网址过滤这两种方式快速找到你想要的资源&#xff0c;并且还能配合WebTorrent在线播放&#xff0c;还可以配合下载工具进行一键下载资源&#xff0…

【森林SOU】小巧绿色版搜索神器

种子搜索神器是一款基于P2P技术的资源搜索软件&#xff0c;搜索神器有很多&#xff0c;其实下面为大家带来的这个搜索工具就很不错&#xff0c;小巧功能强大无需安装&#xff0c;这里有着十分全面的资源可以自由搜索&#xff0c;下载也没有什么速度限制&#xff0c;十分便捷&am…

2014 三款强大搜片神器 | 各种视频资源 | 电影电视剧搜索

您还在百度上搜索电影吗&#xff0c;即浪费时间有累眼睛&#xff0c;并且还经常找到的不是自己想要的资源(某位仁兄下来了几个G的葫芦娃~~)。 亲们的福音来了。三款超强大的搜索下载看片软件很适合你。 只要有了他们&#xff0c;找神马资源都会变的轻松&#xff0c;So Easy~~ 下…

分享几个好用的百度网盘搜索引擎

与大家分享几个好用的网盘搜索神器&#xff0c;方便大家搜索百度云网盘分享的资源文件。&#xff08;已测试&#xff0c;目前都可用&#xff09; 一、 盘搜 http://www.pansou.com/ 网站简洁&#xff0c;搜索即可出来结果&#xff0c;点击搜索结果就能跳转。 二、 飞鱼盘搜 h…

吊打本地搜索神器everthing,最快 最强的电脑本地搜索神器!

Windows的小伙伴应该都对Windows资源管理器 自带的『文件搜索功能』说一句“垃圾” 全盘搜索一个文件居然需要几十秒 而为了解决Windows搜索慢的问题 不少小伙伴应该都用过或者听说过『Everything』这个软件 不论磁盘空间多大、存有多少文件 Everything都能以毫秒级的速度搜…

推荐一些非常好用的网盘搜索神器

网盘工具的兴起&#xff0c;大多数的用户会在网盘上分享自己的资源。那么如何快速的在网盘上找到你想要的资源呢 ? 而今天推荐的就是一些网盘搜索引擎&#xff0c;它可以使我们快速搜搜索到自己想要的资源&#xff0c;从而提高了整体的搜索效率。下面将介绍一些搜索引擎&#…

easySearch:一款聚合资源搜索神器

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版&#xff0c;欢迎购买。点击进入详情 大家好&#xff0c;我是免费哥。 今天给大家带来的资源是&#xff1a;资源聚合搜索神器easySearch 资料简介 这是一款Chrome浏览器插件&#xff0c;支持主流链接…

资源搜索引擎

1.DogeDoge搜索引擎&#xff1a;https://www.dogedoge.com/ 不追踪&#xff0c;不误导。 2.秘迹搜索&#xff1a;https://mijisou.com/ 这是一个 不追踪 你的搜索引擎 3.小白盘&#xff1a;https://www.xiaobaipan.com/ 4.云盘精灵&#xff08;资源搜索&#xff09;&#xf…

各大网盘搜索资源神器免费送!!!

文章目录 百度网盘资源搜索神器系列1、盘多多&#xff1a;http://www.panduoduo.net/2、盘搜&#xff1a;http://www.pansou.com/3、盘搜搜&#xff1a;http://www.pansoso.com/ 百度网盘资源搜索神器系列 给经常玩百度网盘的玩家推荐微信公众号&#xff1a;性感的小君君 提供…

黑科技丨资源搜索神器

黑科技丨资源搜索神器 黑科技丨资源搜索神器 资源整合网站 网盘搜索学术搜索数据搜索 影视资源 前言&#xff1a;本文向读者推荐各种好用的资源搜索神器。 资源整合网站 网盘搜索 资源搜索&#xff1a;一款集合各大搜索于一身的搜索网站&#xff0c;如一网打尽、56网盘、水滴等…