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();
}

处理效果:
在这里插入图片描述

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-11 09:50:02       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-11 09:50:02       106 阅读
  3. 在Django里面运行非项目文件

    2024-03-11 09:50:02       87 阅读
  4. Python语言-面向对象

    2024-03-11 09:50:02       96 阅读

热门阅读

  1. 归并排序

    2024-03-11 09:50:02       46 阅读
  2. 微信小程序-wxml语法

    2024-03-11 09:50:02       50 阅读
  3. Keepalived工具的基本介绍(原理:VRRP协议)

    2024-03-11 09:50:02       42 阅读
  4. MongoDB聚合运算符:$dayOfYear

    2024-03-11 09:50:02       48 阅读
  5. selenium启用MS Edge浏览器/下载MS Edge WebDriver

    2024-03-11 09:50:02       43 阅读
  6. 嵌入式开发的3种架构

    2024-03-11 09:50:02       46 阅读
  7. 大数据开发(Spark面试真题-卷四)

    2024-03-11 09:50:02       47 阅读
  8. 新概念英语第二册 (75)

    2024-03-11 09:50:02       35 阅读
  9. sql高级

    sql高级

    2024-03-11 09:50:02      43 阅读