当前位置: 首页 > news >正文

常州微网站建设如何创建自媒体手机网站

常州微网站建设,如何创建自媒体手机网站,软文模板,清空网站空间这篇博客为修改过后的转载#xff0c;因为没有转载链接#xff0c;所以选了原创 文章目录 一、vs code 结合Cmake debug1.1 配置tasks.json1.2 配置launch.json 二、图片、视频、摄像头读取显示2.1 读取图片并显示2.2 读取视频文件并显示2.3 读取摄像头并写入文件 三、图片基…这篇博客为修改过后的转载因为没有转载链接所以选了原创 文章目录 一、vs code 结合Cmake debug1.1 配置tasks.json1.2 配置launch.json 二、图片、视频、摄像头读取显示2.1 读取图片并显示2.2 读取视频文件并显示2.3 读取摄像头并写入文件 三、图片基本操作3.1 颜色转换3.2 图像filtering3.3 形状调整3.4 绘制 四、RTSP 视频流4.1 本机构造RTSP视频流optional4.2 使用ffmpeg作为视频解码 五、人脸检测小例子 一、vs code 结合Cmake debug 1.1 配置tasks.json 文件架构如下 需要注意-DCMAKE_BUILD_TYPEDebug 要设置为Debug模式。 {version: 2.0.0,tasks: [{// cmake配置type: cppbuild,label: CMake配置,command: cmake, // cmake命令args: [-S ., // 源码目录-B build, // 编译目录-DCMAKE_BUILD_TYPEDebug // 编译类型],options: {cwd: ${workspaceFolder} // 工作目录},problemMatcher: [$gcc],group: build,},{// cmake编译type: cppbuild,label: CMake编译,command: cmake, // cmake命令args: [--build, // 编译build, // 编译目录],options: {cwd: ${workspaceFolder} // 工作目录},problemMatcher: [$gcc],group: build,dependsOn: [CMake配置 // 依赖CMake配置先执行CMake配置]},{// 删除build目录type: shell,label: 删除build目录,command: rm -rf build,options: {cwd: ${workspaceFolder} // 工作目录},problemMatcher: [$gcc],group: build,}] }1.2 配置launch.json {// 使用 IntelliSense 了解相关属性。 // 悬停以查看现有属性的描述。// 欲了解更多信息请访问: https://go.microsoft.com/fwlink/?linkid830387version: 0.2.0,configurations: [{name: CMake调试,type: cppdbg,request: launch,program: ${workspaceFolder}/build/cmake_debug, // 编译后的程序需要结合CMakeLists.txt中的add_executable()函数args: [],stopAtEntry: false,cwd: ${workspaceFolder},environment: [],externalConsole: false,MIMode: gdb,miDebuggerPath: /usr/bin/gdb,setupCommands: [{description: Enable pretty-printing for gdb,text: -enable-pretty-printing,ignoreFailures: true}],preLaunchTask: CMake编译}] }二、图片、视频、摄像头读取显示 2.1 读取图片并显示 // 使用imread函数读取图片和Python用法类似 // 读取的数据保存在Mat类型的变量image中Mat是opencv中的图像数据结构类似numpy中的ndarray cv::Mat image cv::imread(图片路径);// 输出数据以numpy和Python list格式输出 std::cout cv::format(image, cv::Formatter::FMT_NUMPY) std::endl; std::cout cv::format(image, cv::Formatter::FMT_PYTHON) std::endl;// 判断图像是否读取成功返回true表示失败 if (image.empty()) {std::cout 无法读取图片 std::endl;return 1; } // imshow显示图像 cv::imshow(opencv demo, image); // 保存图像 cv::imwrite(./output/gray_image.jpg, gray_image);// 等待按键 cv::waitKey(0); 2.2 读取视频文件并显示 // 读取视频创建了一个VideoCapture对象参数为视频路径 cv::VideoCapture capture(视频路径);// 判断视频是否读取成功返回true表示成功 if (!capture.isOpened()) {std::cout 无法读取视频 std::endl;return 1; }// 读取视频帧使用Mat类型的frame存储返回的帧 cv::Mat frame; // 循环读取视频帧 while (true) {// 读取视频帧使用 运算符或者read()函数他的参数是返回的帧capture.read(frame);// capture frame;// 显示视频帧cv::imshow(opencv demo, frame); }2.3 读取摄像头并写入文件 // 读取视频创建了一个VideoCapture对象参数为摄像头编号 cv::VideoCapture capture(0);// 写入MP4文件参数分别是文件名编码格式帧率帧大小 cv::VideoWriter writer(record.mp4, cv::VideoWriter::fourcc(H, 2, 6, 4), 20, cv::Size(640, 480));// 写入视频 writer.write(frame);三、图片基本操作 3.1 颜色转换 // BGR - Gray // 三个参数分别是输入图像、输出图像、转换方式 cv::cvtColor(src, gray, cv::COLOR_BGR2GRAY); // BGR - HSVHue(色调)、Saturation(饱和度)、Value(明度) cv::cvtColor(src, hsv, cv::COLOR_BGR2HSV); // BGR - RGB cv::cvtColor(src, rgb, cv::COLOR_BGR2RGB);3.2 图像filtering // 三个参数分别是输入图像、输出图像、卷积核大小 cv::GaussianBlur(src, blur, cv::Size(7, 7), 0); // 膨胀 // 三个参数分别是输入图像、输出图像、卷积核大小 cv::dilate(src, dilate, cv::getStructuringElement(cv::MORPH_RECT, cv::Size(5, 5))); // 腐蚀 // 三个参数分别是输入图像、输出图像、卷积核大小 cv::erode(src, erode, cv::getStructuringElement(cv::MORPH_RECT, cv::Size(5, 5)));3.3 形状调整 // resize // 三个参数分别是输入图像、输出图像、输出图像大小 cv::resize(src, resize, cv::Size(320, 240));// copy cv::Mat copy; src.copyTo(copy); // ROI裁剪 cv::Rect rect(100, 100, 200, 100); // x, y, width, height cv::Mat roi src(rect); cv::imwrite(./output/3.roi.jpg, roi);// 拼接 cv::Mat dog_img cv::imread(./media/dog.jpg); cv::Mat dog_resize; cv::resize(dog_img, dog_resize, cv::Size(320, 240));// 水平拼接需要保证两张图片的高度rows一致 cv::Mat hconcat_img; cv::hconcat(resize, dog_resize, hconcat_img); cv::imwrite(./output/3.hconcat.jpg, hconcat_img);// 或者使用vector方式 std::vectorcv::Mat imgs{resize, dog_resize, resize, dog_resize}; cv::Mat hconcat_img2; cv::hconcat(imgs, hconcat_img2); cv::imwrite(./output/3.hconcat2.jpg, hconcat_img2);// 数组方式 cv::Mat imgs_arr[] {dog_resize, resize, dog_resize, resize}; cv::Mat hconcat_img3; cv::hconcat(imgs_arr, 4, hconcat_img3); // 4是数组长度 cv::imwrite(./output/3.hconcat3.jpg, hconcat_img3);// 垂直拼接需要保证两张图片的宽度cols一致 cv::Mat vconcat_img; cv::vconcat(resize, dog_resize, vconcat_img); cv::imwrite(./output/3.vconcat.jpg, vconcat_img);// 翻转 cv::Mat flip; // 三个参数分别是输入图像、输出图像、翻转方向 cv::flip(src, flip, 1); // 1表示水平翻转0表示垂直翻转-1表示水平垂直翻转// 旋转 cv::Mat rotate; // 三个参数分别是输入图像、输出图像、旋转角度 cv::rotate(src, rotate, cv::ROTATE_90_CLOCKWISE); // 顺时针旋转90度3.4 绘制 // 创建一个黑色图像参数分别是图像大小、图像类型CV_8UC3表示8位无符号整数3通道 cv::Mat image cv::Mat::zeros(cv::Size(600, 600), CV_8UC3);// 绘制直线参数分别是图像、起点、终点、颜色、线宽、线型 cv::line(image, cv::Point(50, 50), cv::Point(350, 250), cv::Scalar(0, 0, 255), 2, cv::LINE_AA); // 绘制矩形参数分别是图像、左上角、右下角、颜色、线宽、线型 cv::rectangle(image, cv::Point(50, 50), cv::Point(350, 250), cv::Scalar(0, 255, 0), 2, cv::LINE_AA); // 绘制圆形参数分别是图像、圆心、半径、颜色、线宽、线型 cv::circle(image, cv::Point(200, 150), 100, cv::Scalar(255, 0, 0), 2, cv::LINE_AA); // 实心 cv::circle(image, cv::Point(200, 150), 50, cv::Scalar(255, 0, 0), -1, cv::LINE_AA);// 多边形 cv::Point points[2][4]; // 定义两个多边形的顶点数组 // 第一个多边形的顶点 points[0][0] cv::Point(100, 115); points[0][1] cv::Point(255, 135); points[0][2] cv::Point(140, 365); points[0][3] cv::Point(100, 300); // 第二个多边形的顶点 points[1][0] cv::Point(300, 315); points[1][1] cv::Point(555, 335); points[1][2] cv::Point(340, 565); points[1][3] cv::Point(300, 500); // ppt[] 要同时添加两个多边形顶点数组的地址 const cv::Point *pts_v[] {points[0], points[1]}; // npts_v[]要定义每个多边形的定点数 int npts_v[] {4, 4}; // 绘制多边形参数分别是图像、顶点数组、顶点数、是否闭合、颜色、线宽、线型 cv::polylines(image, pts_v, npts_v, 2, true, cv::Scalar(255, 0, 255), 2, 8, 0);// 使用vector绘制多边形 std::vectorcv::Point points_v; // 随机生成5个点 for (int i 0; i 5; i) {points_v.push_back(cv::Point(rand() % 600, rand() % 600)); } // 绘制多边形参数分别是图像、顶点数组、是否闭合、颜色、线宽、线型 cv::polylines(image, points_v, true, cv::Scalar(255, 0, 0), 2, 8, 0);// 绘制文字 // 参数分别是图像、文字、文字位置、字体、字体大小、颜色、线宽、线型 cv::putText(image, Hello World!, cv::Point(400, 50), cv::FONT_HERSHEY_SIMPLEX, 1.0, cv::Scalar(255, 255, 255), 2, 8, 0);四、RTSP 视频流 4.1 本机构造RTSP视频流optional # Ubuntu安装ffmpeg sudo apt-get install ffmpeg# 赋予权限 chmod x rtsp-simple-server chmod x start_server.sh # 运行服务 ./start_server.sh# 退出服务 pkill rtsp-simple-server pkill ffmpeg4.2 使用ffmpeg作为视频解码 // CAP_FFMPEGopencv 使用ffmpeg解码 cv::VideoCapture stream1 cv::VideoCapture(rtsp地址, cv::CAP_FFMPEG);五、人脸检测小例子 附件位置5.face_detection
http://www.w-s-a.com/news/826066/

相关文章:

  • 中山城市建设集团网站网站建设设计基础
  • 网站开发流程莆田wordpress点播收费
  • 网站未及时续费浙江台州做网站的公司有哪些
  • 二级域名做网站好不好河源建网站
  • 公司网站的作用意义维护建设管理天津平台网站建设费用
  • 建设部网站如何下载国标规范上海影视公司
  • 企业官方网站地址通了网站建设
  • 专题网站可以做什么怎么做网站滑动图片部分h5
  • 什么是网站建设外包html 门户网站
  • 资阳市建设局网站微信开发公司
  • wap建站程序源码可不可以异地建设网站
  • 优秀企业网站的特点网站标签名词
  • 建材网站建设案例淄博网站建设培训
  • 纯代码添加wordpress网站底部导航宝塔自助建站源码
  • 网站设计技术有哪些?青岛网站建设工作室
  • 网站怎样建设才叫人性化宣传
  • 济南网站制作方案做淘客网站备案
  • h5企业网站只做做php门户网站那个系统好
  • 长春阿凡达网站建设建网站如果不买域名别人能不能访问
  • 佛山网站建设策划东莞建设工程交易网
  • 制作公众号网站开发濮阳建网站
  • 屏南网站建设兼职旅游网站建设方案两百字
  • 最牛的网站建设网站建设的规模设想
  • 马云之前做的网站企业形象策划
  • ie9网站后台编辑器代发qq群发广告推广
  • 百度怎样建立一个网站嘉兴高端网站定制
  • 国外设计网站怎么进入电子网站建设前台设计
  • 中方建设局网站济南网站建设公司电子商务网站
  • 如何做网站编辑 沒技术济南企业做网站推广网站
  • 网站模板 百科北京中高风险地区最新名单最新