【区域生长】代码

2023-09-15 09:47:53

以下是基于Python的区域生长法完整代码:

import numpy as np
import cv2

# 读入原始光学影像并转为灰度图像
img = cv2.imread('optical_image.jpg', cv2.IMREAD_GRAYSCALE)

# 设定种子点(滑坡区域)
seed_point = (200, 200)

# 设定生长阈值
threshold = 50

# 定义函数实现区域生长法
def region_grow(img, seed_point, threshold):
    # 定义8邻域(包括中心点),用于判断种子点周围的像素是否属于滑坡区域
    neigbors = [(-1, -1), (-1, 0), (-1, 1), (0, -1), (0, 1), (1, -1), (1, 0), (1, 1)]

    # 构造滑坡区域的掩膜(初始状态全部为0)
    mask = np.zeros(img.shape, dtype=np.uint8)

    # 将种子点置为255(滑坡区域)
    mask[seed_point] = 255

    # 开始生长
    while True:
        # 复制掩膜
        new_mask = mask.copy()

        # 遍历掩膜中所有的像素
        for i in range(img.shape[0]):
            for j in range(img.shape[1]):
                # 如果该像素已标记为滑坡区域,则检查它周围的8个像素
                if mask[i, j] == 255:
                    for neigbor in neigbors:
                        # 计算8邻域中每个像素的坐标
                        x = i + neigbor[0]
                        y = j + neigbor[1]

                        # 如果该像素在图像范围内且未被标记,并且其与种子点之间的差值小于阈值,则标记为滑坡区域
                        if x >= 0 and y >= 0 and x < img.shape[0] and y < img.shape[1]:
                            if mask[x, y] == 0 and abs(int(img[x, y]) - int(img[i, j])) < threshold:
                                new_mask[x, y] = 255

        # 如果掩膜未发生变化,则生长结束
        if np.array_equal(mask, new_mask):
            break

        # 更新掩膜
        mask = new_mask

    # 返回滑坡区域掩膜
    return mask

# 调用区域生长函数获取滑坡区域掩膜
mask = region_grow(img, seed_point, threshold)

# 显示滑坡区域掩膜和原始光学影像(滑坡区域为红色)
img_with_mask = cv2.cvtColor(img, cv2.COLOR_GRAY2BGR)
img_with_mask[np.where(mask == 255)] = [0, 0, 255]
cv2.imshow('Slip Area', img_with_mask)
cv2.imshow('Original Image', img)
cv2.waitKey(0)

该代码实现了基于区域生长法的光学影像目标识别,具体步骤如下:

  1. 读入原始光学影像,并将其转为灰度图像。
  2. 设定输入种子点的坐标和生长阈值。
  3. 定义名为region_grow的函数实现区域生长法,传入参数为原始光学影像、种子点和生长阈值。在函数中运用掩膜的概念,逐渐将滑坡区域扩大,直到满足停止生长的条件。最终返回滑坡区域掩膜。
  4. 在主函数中调用region_grow函数获取滑坡区域掩膜。
  5. 将滑坡区域掩膜与原始光学影像合并并显示出来,方便观察。

注意,该代码仅提供了一个基本的区域生长法实现,实际应用时可能需要根据具体情况对生长算法进行优化。

更多推荐

四川玖璨电子商务有限公司专注抖音电商运营

四川玖璨电商是一个靠谱的抖音培训公司,在电商行业内有着广泛的知名度和良好的口碑。该公司通过多年的发展,形成了独特的运营理念和有效的运营策略,为商家提供了一站式的抖音电商运营服务。首先,四川玖璨电子商务有限公司注重与商家的沟通和合作。公司专门设立了客户服务团队,与商家建立紧密的合作关系。商家可以随时与团队成员进行沟通,了

vue点击pdf文件直接在浏览器中预览文件

好久没有更新文章了,说说为什么会有这篇文章呢,其实是应某个热线评论的要求出的,不过由于最近很长一段时间没打开csdn现在才看到,所以才会导致到现在才出。先来看看封装完这个预览方法的使用,主打一个方便使用:id:为文件idname:为文件名称ajaxDownLoadFile(id,name)没错就是这么简单,调用这个函数

采棉机工作过程的关键动作

1、起动:确认机械变速手柄和液压手柄在空挡位置——确认手油门在最小位置——关闭所有照明开关和电气——打开钥匙开关——检查所有仪表是否符合起动的要求——灯检——响喇叭警示周围人员——起动(800—900转/分稳定后)——怠速(1200转/分)运行2分钟(冬天4分钟)。2、熄火:停车(一般不要使用制动器,防止采棉机前倾栽头

TypeScript项目配置

前言我们需要建立tsconfig.json作用用于标识TypeScript项目的根路径;用于配置TypeScript编译器;用于指定编译的文件。重要字段files-设置要编译的文件的名称;include-设置需要进行编译的文件,支持路径模式匹配;exclude-设置无需进行编译的文件,支持路径模式匹配;compiler

ThinkPHP5,使用unionAll取出两个毫无相关字段表的数据且分页

一:首先来了解一下union和unionAll1:取结果的并集,是否去重union:对两个结果集进行并集操作,不包括重复行,相当于distinct,同时进行默认规则的排序;unionAll:对两个结果集进行并集操作,包括重复行,即所有的结果全部显示,不管是不是重复;2:获取结果后的操作,是否排序union:会对获取的结

基于Java+SpringBoot+Vue的旧物置换网站设计和实现

基于Java+SpringBoot+Vue的旧物置换网站设计和实现源码传送入口前言主要技术系统设计功能截图数据库设计代码论文目录订阅经典源码专栏Java项目精品实战案例《500套》源码获取源码传送入口前言摘要随着时代在一步一步在进步,旧物也成人们的烦恼,许多平台网站都在推广自已的产品像天猫、咸鱼、京东。所以开发出一套关

云计算(Docker)

Docker简介Docker是一个开源的应用容器引擎,基于Go语言,并遵从Apache2.0协议开源。它可以让开发者打包应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的Linux机器上,也可以实现虚拟化。Docker可用于开发应用、交付应用、运行应用等场景。容器是完全使用沙箱机制,相互之间不会有任何接口

【ICCV 2023】FocalFormer3D : Focusing on Hard Instance for 3D Object Detection

原文链接:https://arxiv.org/abs/2308.045561.引言目前的3D目标检测方法没有显式地去考虑漏检问题。本文提出了困难实例探测(HIP)。受目标检测的级联解码头启发,HIP逐步探测误检样本,极大提高召回率。在每个阶段,HIP抑制TP样本并关注之前阶段的FN样本,则通过迭代HIP,可以处理困难的

ES6中新增加的Proxy对象及其使用方式

聚沙成塔·每天进步一点点⭐专栏简介⭐Proxy对象的基本概念Proxy对象的主要陷阱(Traps)⭐使用Proxy对象⭐写在最后⭐专栏简介前端入门之旅:探索Web开发的奇妙世界记得点击上方或者右侧链接订阅本专栏哦几何带你启航前端之旅欢迎来到前端入门之旅!这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打

ffmpeg & ffplay

gif->jpg:```ffmpeg-i4.gif-r25-q:v4-pix_fmtyuv420pjpg2/frame%03d.jpg-y```#ffplay```ffplay[选项]['输入文件']```option```'-xwidth'强制以"width"宽度显示'-yheight'强制以"height"高度显示

【农业生产模拟】WOFOST模型与PCSE模型教程

查看原文>>>【农业生产模拟】WOFOST模型与PCSE模型实践目录第一章:理论基础农作物生长模型概述第二章:数据准备第三章:WOFOST模型基础第四章:PythonCropSimulationEnvironment第五章:案例拓展WOFOST(WorldFoodStudies)和PCSE(PythonCropSimu

热文推荐