opencv解析系列 - 基于DOM提取大面积植被(如森林)
Note:简单提取,不考虑后处理(填充空洞、平滑边界等)
#include <iostream>
#include "opencv2/imgproc.hpp"
#include "opencv2/highgui.hpp"
#include <opencv2/opencv.hpp>
using namespace cv;#pragma comment(lib,"opencv_world490d.lib")
int main(int, char**)
{// 读取图像cv::Mat originalImage = cv::imread("D:\\OpenCV\\1.jpg");cv::Mat image = cv::imread("D:\\OpenCV\\1.jpg", cv::IMREAD_GRAYSCALE);// 应用阈值处理cv::Mat binaryImage;cv::threshold(image, binaryImage, 128, 255, cv::THRESH_BINARY);// 可以使用滤波、边缘检测等方法进行图像处理和增强// 可以使用特征提取、目标检测等方法进行建筑物识别//创建结构元素cv::Mat kernel = cv::getStructuringElement(cv::MORPH_RECT, cv::Size(10, 10));//膨胀cv::Mat dilateImage;cv::dilate(binaryImage, dilateImage, kernel, cv::Point(0, 0), 3);//腐蚀cv::Mat erodedImage;cv::erode(dilateImage, erodedImage, kernel);// 颜色反转cv::bitwise_not(erodedImage, erodedImage);// 寻找轮廓std::vector<std::vector<cv::Point>> contours;cv::findContours(erodedImage, contours, cv::RETR_EXTERNAL, cv::CHAIN_APPROX_SIMPLE);// 绘制轮廓cv::Mat contourImage = cv::Mat::zeros(image.size(), CV_8UC3);cv::drawContours(contourImage, contours, -1, cv::Scalar(0, 255, 0),2);//将轮廓叠加到原始图片上Mat resultImage;addWeighted(originalImage, 0.7, contourImage, 0.3, 0, resultImage);// 创建窗口并显示图片cv::imshow("Original Image", originalImage);//cv::imshow("Tree", contourImage);cv::imshow("Tree", resultImage);// 等待按键退出cv::waitKey(0);// 销毁窗口cv::destroyAllWindows();
}
处理效果:

相关文章:
opencv解析系列 - 基于DOM提取大面积植被(如森林)
Note:简单提取,不考虑后处理(填充空洞、平滑边界等) #include <iostream> #include "opencv2/imgproc.hpp" #include "opencv2/highgui.hpp" #include <opencv2/opencv.hpp> using namespace cv…...
【Leetcode】299. 猜数字游戏
文章目录 题目思路代码结果 题目 题目链接 你在和朋友一起玩 猜数字(Bulls and Cows)游戏,该游戏规则如下: 写出一个秘密数字,并请朋友猜这个数字是多少。朋友每猜测一次,你就会给他一个包含下述信息的提…...
JWT身份验证
在实际项目中一般会使用jwt鉴权方式。 JWT知识点 jwt,全称json web token ,JSON Web令牌是一种开放的行业标准RFC 7519方法,用于在两方安全地表示声明。具体网上有许多文章介绍,这里做简单的使用。 1.数据结构 JSON Web Token…...
IOS面试题object-c 71-80
71. 简单介绍下NSURLConnection类及 sendSynchronousRequest:returningResponse:error:与– initWithRequest:delegate:两个方法的区别?NSURLConnection 主要用于网络访问,其中 sendSynchronousRequest:returningResponse:error:是同步访问数据,即当前…...
计算机mfc140.dll文件缺失的修复方法分析,一键修复mfc140.dll
电脑显示mfc140.dll文件缺失信息时,不必担心,这通常是个容易解决的小问题。接下来让我们详细探究并解决mfc140.dll文件缺失的状况。以下将详述相应的解决方案,从而帮助您轻松克服这一技术难题。通过几个简单步骤,即可恢复正常使用…...
web前端框架
目前比较火热的几门框架: React React是由Facebook(脸书)开发和创建的开源框架。React 用于开发丰富的用户界面,特别是当您需要构建单页应用程序时。它是最强大的前端框架。 弊端: 您不具备 JavaScript 的实践知识,则建议不要使用 React。同样&#x…...
关于playbook中when条件过滤报The conditional check ‘result|failed‘ failed的问题
问题现象 在使用plabook中的when做过滤脚本如下: --- - hosts: realserversremote_user: roottasks:- name: Check if httpd service is runningcommand: systemctl status httpdregister: resultignore_errors: True- name: Handle failed service checkdebug:ms…...
【设计模式专题之抽象工厂模式】3. 家具工厂
题目描述 小明家新开了两个工厂用来生产家具,一个生产现代风格的沙发和椅子,一个生产古典风格的沙发和椅子,现在工厂收到了一笔订单,请你帮他设计一个系统,描述订单需要生产家具的信息。 输入描述 输入的第一行是一…...
架构:Apache Kafka Connect实现sqlserver数据实时同步
实现Apache Kafka Connect与SQL Server之间的实时数据同步,您可以使用Kafka Connect的JDBC Source Connector。以下是一个基本的步骤: 1. 安装Kafka Connect:确保您已经安装了Apache Kafka 和 Kafka Connect。您可以从Apache Kafka的官方网站…...
C语言:深入补码计算原理
C语言:深入补码计算原理 有符号整数存储原码、反码、补码转换规则数据与内存的关系 补码原理 有符号整数存储 原码、反码、补码 有符号整数的2进制表示方法有三种,即原码、反码和补码 三种表示方法均有符号位和数值位两部分,符号位用0表示“…...
【Pytorch】新手入门:基于sklearn实现鸢尾花数据集的加载
【Pytorch】新手入门:基于sklearn实现鸢尾花数据集的加载 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望…...
maven项目引入私有jar,并打包到java.jar中
私有jar存放位置 maven依赖 <dependency><groupId>com.hikvision.ga</groupId><artifactId>artemis-http-client</artifactId><version>1.1.10</version><scope>system</scope><systemPath>${project.basedir}/s…...
Django中的Cookie和Session
文章目录 cookie是什么Django中如何使用cookieCookie使用示例session是什么Django中如何使用会话sessionSession使用示例小结 HTTP协议本身是”无状态”的,在一次请求和下一次请求之间没有任何状态保持,服务器无法识别来自同一用户的连续请求。有了cooki…...
Git-安装与使用(快速上手图文教程)
Git-安装与使用(快速上手图文教程) - 知乎 克隆: 首先你进去你要存放代码的位置,比如将代码存放到D盘,然后在D盘中右键,点击Git Bash Here,就是说本地仓库要在D盘建立。然后出现git 命令行界面…...
VBA_NZ系列工具NZ02:VBA读取PDF使用说明
我的教程一共九套及VBA汉英手册一部,分为初级、中级、高级三大部分。是对VBA的系统讲解,从简单的入门,到数据库,到字典,到高级的网抓及类的应用。大家在学习的过程中可能会存在困惑,这么多知识点该如何组织…...
如何在paddlehub库中找到paddlehub.Module()所在的位置
要在PaddleHub库中找到paddlehub.Module()的位置,您可以通过以下步骤在PaddleHub库的源代码中进行查找: 1.确定PaddleHub库的安装位置:首先,确定您安装PaddleHub库的位置。通常,PaddleHub库会被安装在Python的site-pa…...
创建旅游景点图数据库Neo4J技术验证
文章目录 创建旅游景点图数据库Neo4J技术验证写在前面基础数据建库python3源代码KG效果KG入库效率优化方案PostGreSQL建库 创建旅游景点图数据库Neo4J技术验证 写在前面 本章主要实践内容: (1)neo4j知识图谱库建库。使用导航poi中的公园、景…...
Docker一键部署WordPress
使用Docker安装WordPress相对传统安装方式更加便捷高效,因为它可以快速创建一个包含所有必要组件(Web服务器、PHP和MySQL数据库)的独立容器环境。下面是一个简化的步骤说明如何使用Docker和Docker Compose安装WordPress: 一 安装…...
C++的类与对象(五):赋值运算符重载与日期类的实现
目录 比较两个日期对象 运算符重载 赋值运算符重载 连续赋值 日期类的实现 Date.h文件 Date.cpp文件 Test.cpp文件 const成员 取地址及const取地址操作符重载 比较两个日期对象 问题描述:内置类型可直接用运算符比较,自定义类型的对象是多个…...
【uni-app小程序开发】实现一个背景色渐变的滑动条slider
先直接附上背景色渐变的滑动条slider uni-module插件地址:https://ext.dcloud.net.cn/plugin?id16841 最近做的一个用uni-appvue2开发的微信小程序项目中要实现一个滑动进度控制条,如下图所示: 1. 滑动条需要渐变背景色 2. 滑块的背景色需…...
终极指南:如何快速解决RevokeMsgPatcher微信3.9.10.19版本路径兼容性问题
终极指南:如何快速解决RevokeMsgPatcher微信3.9.10.19版本路径兼容性问题 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁(我已经看到了,撤回也没用了) 项目地址: …...
WeChatExporter:解锁iOS微信聊天记录的数字记忆宝库
WeChatExporter:解锁iOS微信聊天记录的数字记忆宝库 【免费下载链接】WeChatExporter 一个可以快速导出、查看你的微信聊天记录的工具 项目地址: https://gitcode.com/gh_mirrors/wec/WeChatExporter 你是否曾因误删微信对话而懊悔不已?是否担心手…...
终极指南:如何在Mac上轻松创建Windows启动盘(免费方案)
终极指南:如何在Mac上轻松创建Windows启动盘(免费方案) 【免费下载链接】windiskwriter 🖥 Windows Bootable USB creator for macOS. 🛠 Patches Windows 11 to bypass TPM and Secure Boot requirements. Ǵ…...
新KS型单级单吸离心泵的设计(说明书+CAD图纸+调研报告+任务书+英文翻译)
新KS型单级单吸离心泵作为工业流体输送领域的核心设备,其设计聚焦于提升效率、降低能耗与延长使用寿命三大核心目标。该泵型通过优化叶轮几何结构与流道设计,显著减少流体在泵体内的能量损失,实现高效稳定的流量输出。其单级单吸结构简化了内…...
FreeRTOS下I2C与串口通讯的5种高效任务调度策略
1. FreeRTOS下I2C与串口通讯的挑战与优化思路 在嵌入式开发中,I2C和串口通讯是最常用的两种外设接口。当它们运行在FreeRTOS环境下时,会面临一些独特的挑战。我遇到过不少开发者抱怨说,明明裸机环境下跑得好好的通讯代码,一上Free…...
终极Python量化交易框架PyBroker:机器学习驱动的算法交易实战指南
终极Python量化交易框架PyBroker:机器学习驱动的算法交易实战指南 【免费下载链接】pybroker Algorithmic Trading in Python with Machine Learning 项目地址: https://gitcode.com/gh_mirrors/py/pybroker PyBroker是一个专为Python开发者设计的量化交易框…...
精通猫抓扩展:7个高级配置与流媒体解析实战技巧
精通猫抓扩展:7个高级配置与流媒体解析实战技巧 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 猫抓(cat-catch)…...
Realtek USB网卡驱动深度解析:群晖NAS网络性能提升实战指南
Realtek USB网卡驱动深度解析:群晖NAS网络性能提升实战指南 【免费下载链接】r8152 Synology DSM driver for Realtek RTL8152/RTL8153/RTL8156 based adapters 项目地址: https://gitcode.com/gh_mirrors/r8/r8152 在家庭网络和中小企业环境中,群…...
如何免费解锁网盘全速下载:网盘直链下载助手终极指南
如何免费解锁网盘全速下载:网盘直链下载助手终极指南 【免费下载链接】baiduyun 油猴脚本 - 一个免费开源的网盘下载助手 项目地址: https://gitcode.com/gh_mirrors/ba/baiduyun 还在为网盘下载速度只有几十KB而烦恼吗?网盘直链下载助手就是你需…...
Bidili Generator新手必看:参数设置详解与生成高质量图片技巧
Bidili Generator新手必看:参数设置详解与生成高质量图片技巧 1. 认识Bidili Generator:你的SDXL图片生成助手 Bidili Generator是一款基于Stable Diffusion XL(SDXL)1.0模型深度优化的图片生成工具。它最大的特点是解决了原生S…...
