C++ 17 遍历文件夹图片文件进行循环操作
2024-10-21 09:50:22
#include <filesystem>
using namespace std;
namespace fs = std::filesystem;
string path = filepath; // 替换为指定目录的路径
for (const auto& entry : fs::directory_iterator(path)) {
if (entry.is_regular_file() && entry.path().extension() == ".jpg") {
//std::cout << entry.path() << std::endl; // 输出jpg文件路径
fs::path dPath = entry.path();
string ddPath = dPath.string();
cv::Mat m = cv::imread(ddPath, 1);
if (m.empty())
{
fprintf(stderr, "cv::imread %s failed\n", imagepath);
return -1;
} double t1 = (double)cv::getTickCount();
std::vector<lineMLSD> lines;
detect_mlsd(m, lines);
//////////draw/////////////////
cv::Mat image = m.clone();
for (size_t i = 0; i < lines.size(); i++)
{
const lineMLSD& obj = lines[i];
fprintf(stderr, "%d %d %d x %d\n", obj.sp.x, obj.sp.y, obj.ep.x, obj.ep.y);
cv::line(image, obj.sp, obj.ep, cv::Scalar(0, 0, 255), 2);
}
float fps = (double)cv::getTickFrequency() / (cv::getTickCount() - t1);
cv::putText(image, "FPS : " + std::to_string(int(fps)), cv::Point(50, 50), cv::FONT_HERSHEY_SIMPLEX, 1.5, cv::Scalar(50, 150, 50), 4); cv::imwrite("out/" + entry.path().filename().string(), image);
}
}
最新文章
- krpano
- Atitit 视图状态ViewState)的原理与管理
- 动态链接库(DLL)总结
- os模块
- Java并发编程-并发工具包(java.util.concurrent)使用指南(全)
- [改善Java代码]由点及面,一叶知秋----集合大家族
- 【转】ubuntu 11.10(32位系统)下编译android源码
- VS2008下直接安装使用Boost库1.46.1版本
- C#程序调用cmd.exe执行命令
- Asp.Net 常用工具类之Office—Excel导出(4)
- 判断是否AVL平衡二叉书
- volative 与处理器的嗅探技术
- springBoot(3)---目录结构,文件上传
- Android内存优化之内存缓存
- jenkins插件findbugs+pmd+checkstyle结合sonar与maven(java环境代码质量和代码规范管理)
- 图像的几何变换——OpenCV-Python Tutorials
- Django基础二之URL路由系统
- bzoj 5210(树链刨分下做个dp)
- Servlet3.0 新特性
- mysql - 简单的触发器和存储过程
热门文章
- LG P5043 树同构
- 题解 [AHOI2009]同类分布
- IP地址后面/24/26/27/28/29/30网关数量分别是多少?如何计算?
- Cobalt Strike 之: Aggressor Script
- echar 多个图形显示时,点击显示隐藏然后样式缺失,变得非常小
- 深入理解Spring的Bean定义对象BeanDefinition-面试重点
- OpenAI Chat completion API 入门指南
- C++跨平台类库导出宏
- el-table多选框根据条件隐藏显示
- 使用NibiruSDK 坑