生长区域算法的php实现
admin
2023-01-27 08:01:22
0

在photoshop中我们常用的一个功能就是选择区域,用魔法棒选择工具点击图片上的一个点就会选中跟该点颜色一样的连续或非连续区域。这是怎么做到的呢?下面是我用php实生的区域生长算法。


 $val)
        {
            $y_idx = $current['y'] + $val[0];
            $x_idx = $current['x'] + $val[1];
            if (isset($arr[$y_idx][$x_idx]) && $arr[$y_idx][$x_idx] == $seed_value && !isset($label[$y_idx][$x_idx]))
            {
                $label[$y_idx][$x_idx] = 1;
                $queue[] = array('y' => $y_idx, 'x' => $x_idx);
            }
        }
    }
    return $label;
}

// 生长区域测试
$str = << $val)
{
    $x_len = strlen($val);
    for ($x = 0; $x < $x_len; $x++)
    {
        $arr[$y][$x] = $val{$x};
    }
}

// 设置种子点,这里取左上角,value是要匹配的值
// 这里的意思就是以左上角为起点,所有值为0的点全部作为要匹配的区域
$seed = array('y' => 0, 'x' => 0, 'value' => '0');
$result = getGrowRegion($arr, $seed);

// 输出反转之后的字符串
foreach ($arr as $y => $rows)
{
    foreach ($rows as $x => $val)
    {
        if (isset($result[$y][$x]))
        {
            echo $result[$y][$x];
        }
        else
        {
            echo $val==1? 0 : 2;// 非生长点
        }
    }
    echo "\n";
}

运行后的输出结果如下:

111111111111111111111111111111
111111111111111111111111111111
111111111111111111111111111111
111111111111111111111111111111
111111111111111111111111111111
111111111111111111111111111111
111111111111111111111111111111
111111111111100011111111111111
111111111111100011111111111111
111111111111100001111111111111
111111111111000001111111111111
111111111111002000111111111111
111111111111002000111111111111
111111111110002200111111111111
111111111110000000011111111111
111111111100000000011111111111
111111111100000000001111111111
111111111100111110001111111111
111111111000111111001111111111
111111111000111111000111111111
111111111111111111111111111111
111111111111111111111111111111
111111111111111111111111111111
111111111111111111111111111111
111111111111111111111111111111
111111111111111111111111111111
111111111111111111111111111111
111111111111111111111111111111

可以看到原来为0的点全换成了1,但图形中间的点不受影响,我将其标记成了2。

相关内容

热门资讯

美国“痛失”杨植麟,这是历史性... 杨植麟的月之暗面创造了Kimi K3,轰动整个世界。他是近年来第一个放弃了美国机会、回中国创业,并且...
铭显光电取得LED显示屏加工夹... 国家知识产权局信息显示,上海铭显光电科技有限公司取得一项名为“一种LED显示屏加工夹具”的专利,授权...
大盘承压依旧登顶,vivo拿下... 7月22日消息,市场调研机构Omdia发布2026年第二季度印度智能市场报告,数据显示本季度印度手机...
白宫发布《科学:新的黄金时代》... 据白宫7月21日消息,白宫科技政策办公室、管理与预算办公室联合发布《科学:新的黄金时代》报告。本次备...
民营商业火箭首次从长三角东海海... 北京时间7月22日10时54分,我国太原卫星发射中心在上海东部海域使用引力一号遥四运载火箭,将搭载的...
美威胁袭伊基础设施,伊朗军方:... △当地时间21日,船只在霍尔木兹海峡航行伊朗武装部队哈塔姆安比亚中央总部当地时间22日发布声明称,美...
扑翼机器人问世:像潜水鸟一样在... 潜鸟、海鸥、海鹦和海燕,是自然界中约100种既能飞行又能游泳的鸟类。这些潜水鸟能够俯冲入水追逐猎物,...
当科学家走进西部脑谷:这里有望... 7月22日,2026天府科学家创新发展大会暨成都科产融合对接活动锦江经开区脑机接口专场在锦江区成功举...
女子身份证丢失后名下出现“吸毒... 四川籍的庞女士定居浙江宁波多年,她怎么也没想到,因丢失身份证一事,竟让她陷入长达7年“自证清白”的困...
省农科院成功研发我省首个高粱全... 近日,记者从省农科院获悉,该院作物资源研究所、农业生物技术研究所联合石家庄博瑞迪生物,成功研制出省内...