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

如何架设网站服务器seo数据

如何架设网站服务器,seo数据,wordpress 文章去重,郑州网站建设品牌引言 在计算机视觉领域,获取天空的颜色是一个常见任务,广泛应用于天气分析、环境感知和图像增强等场景。本篇博客将介绍如何通过已知的天空区域 Mask 提取天空像素,并使用 K-means 聚类分析天空颜色,最终根据颜色占比查表得到主导…

引言

在计算机视觉领域,获取天空的颜色是一个常见任务,广泛应用于天气分析、环境感知和图像增强等场景。本篇博客将介绍如何通过已知的天空区域 Mask 提取天空像素,并使用 K-means 聚类分析天空颜色,最终根据颜色占比查表得到主导颜色。

一、流程概述

本文的流程分为以下几个步骤:

1. 使用分割 Mask 提取天空区域像素。
2. 通过 K-means 聚类对天空像素进行颜色聚类。
3. 统计每个聚类的面积占比,筛选面积占比超过 30% 的颜色。
4. 根据筛选结果查表获取对应的颜色名称。
接下来我们将详细讲解每个步骤。

二、提取天空区域像素

分割 Mask 是一个二值化的图像,其中 1 表示天空区域,0 表示非天空区域。通过 Mask,可以从原图中提取出天空区域的像素。

from typing import Tuple
import numpy as np
from PIL import Imagedef extract_sky_pixels(image_path: str, sky_mask: np.ndarray) -> np.ndarray:"""根据天空区域的 Mask 提取像素。:param image_path: 输入图像的路径。:param sky_mask: 天空区域的二值化 Mask,1 表示天空,0 表示非天空。:return: 天空区域的像素数组,形状为 (N, 3),每行表示一个像素的 [R, G, B] 值。"""image = Image.open(image_path).convert("RGB")image_np = np.array(image)  # 转为 NumPy 数组return image_np[sky_mask == 1]  # 仅保留天空区域的像素

三、K-means 聚类分析天空颜色

提取天空像素后,我们使用 K-means 聚类将颜色分为若干类(默认设定为 k=3),并统计每类颜色的面积占比。
以下是 K-means 聚类的代码实现:

from sklearn.cluster import KMeans
from typing import Tupledef kmeans_clustering(sky_pixels: np.ndarray, k: int = 3) -> Tuple[np.ndarray, np.ndarray]:"""使用 K-means 对天空像素聚类。:param sky_pixels: 天空区域的像素数组,形状为 (N, 3),每行表示 [R, G, B] 值。:param k: 聚类的数量,默认值为 3。:return: - cluster_centers: 每个聚类的中心颜色,形状为 (k, 3)。- area_ratios: 每个聚类的面积占比,形状为 (k,)。"""# 归一化像素值(0-1 范围)sky_pixels_normalized = sky_pixels / 255.0# 使用 K-means 聚类kmeans = KMeans(n_clusters=k, random_state=0).fit(sky_pixels_normalized)# 获取每个像素的聚类标签labels = kmeans.labels_# 每个聚类的中心颜色cluster_centers = kmeans.cluster_centers_ * 255.0# 统计每个聚类的像素数量label_counts = np.bincount(labels)# 计算每个聚类的面积占比area_ratios = label_counts / len(sky_pixels)return cluster_centers, area_ratios

四、筛选主导颜色并查表

我们关心面积占比超过 30% 的颜色,并通过查表将 RGB 值转换为对应的颜色名称。
以下是颜色查表和筛选的代码:

from typing import List, Tupledef rgb_to_color_name(rgb: np.ndarray) -> str:"""根据 RGB 值查表获取颜色名称。:param rgb: RGB 颜色值,形状为 (3,)。:return: 颜色名称。"""# 定义常见颜色的 RGB 值和名称color_table = {"Sky Blue": (135, 206, 235),"Deep Sky Blue": (0, 191, 255),"Light Blue": (173, 216, 230),"Azure": (240, 255, 255),"Navy": (0, 0, 128)}# 计算每个颜色的欧几里得距离min_dist = float('inf')color_name = "Unknown"for name, value in color_table.items():dist = np.linalg.norm(np.array(rgb) - np.array(value))if dist < min_dist:min_dist = distcolor_name = namereturn color_namedef filter_and_get_color_names(cluster_centers: np.ndarray, area_ratios: np.ndarray, threshold: float = 0.3
) -> List[Tuple[str, float]]:"""筛选面积占比超过阈值的颜色,并查表获取颜色名称。:param cluster_centers: 每个聚类的中心颜色,形状为 (k, 3)。:param area_ratios: 每个聚类的面积占比,形状为 (k,)。:param threshold: 面积占比的筛选阈值,默认为 0.3。:return: 主导颜色及其面积占比的列表,每个元素为 (颜色名称, 面积占比)。"""colors = []for center, ratio in zip(cluster_centers, area_ratios):if ratio > threshold:color_name = rgb_to_color_name(center)colors.append((color_name, ratio))return colors

五、完整代码示例

以下是完整的流程代码,实现从分割 Mask 提取天空颜色的过程:

from typing import List, Tuple
import numpy as npdef get_sky_colors(image_path: str, sky_mask: np.ndarray, k: int = 3, threshold: float = 0.3) -> List[Tuple[str, float]]:"""获取天空区域的主导颜色。:param image_path: 输入图像的路径。:param sky_mask: 天空区域的二值化 Mask,1 表示天空,0 表示非天空。:param k: 聚类的数量,默认值为 3。:param threshold: 面积占比的筛选阈值,默认为 0.3。:return: 主导颜色及其面积占比的列表,每个元素为 (颜色名称, 面积占比)。"""# Step 1: 提取天空像素sky_pixels = extract_sky_pixels(image_path, sky_mask)# Step 2: K-means 聚类cluster_centers, area_ratios = kmeans_clustering(sky_pixels, k)# Step 3: 筛选并查表获取颜色名称dominant_colors = filter_and_get_color_names(cluster_centers, area_ratios, threshold)return dominant_colors# 测试
if __name__ == "__main__":# 假设已知分割 Masksample_mask = np.load("sky_mask.npy")  # 载入二值化 Maskimage_path = "example.jpg"  # 输入图像路径sky_colors = get_sky_colors(image_path, sample_mask)print("天空颜色:", sky_colors)

六、总结

通过分割 Mask 和 K-means 聚类,我们可以高效提取天空区域的颜色特征,并获取主导颜色。这种方法简单易用,适合多种场景需求。
希望这篇博客能帮助你快速上手天空颜色提取的实现!如有疑问,欢迎在评论区交流!


文章转载自:
http://ovine.fwrr.cn
http://biomathcmatics.fwrr.cn
http://noteless.fwrr.cn
http://dodecanese.fwrr.cn
http://signifiant.fwrr.cn
http://detergency.fwrr.cn
http://esterifiable.fwrr.cn
http://partygoer.fwrr.cn
http://semimillenary.fwrr.cn
http://electrodialysis.fwrr.cn
http://jill.fwrr.cn
http://barycenter.fwrr.cn
http://fallway.fwrr.cn
http://indolently.fwrr.cn
http://arteriole.fwrr.cn
http://undulation.fwrr.cn
http://chock.fwrr.cn
http://resurrectionary.fwrr.cn
http://rhexis.fwrr.cn
http://vibraphonist.fwrr.cn
http://alway.fwrr.cn
http://nonmaterial.fwrr.cn
http://slinger.fwrr.cn
http://beautician.fwrr.cn
http://cystoscopy.fwrr.cn
http://stotious.fwrr.cn
http://lawny.fwrr.cn
http://redescription.fwrr.cn
http://bowline.fwrr.cn
http://abscisin.fwrr.cn
http://matrimonial.fwrr.cn
http://guerrilla.fwrr.cn
http://broadleaf.fwrr.cn
http://phene.fwrr.cn
http://tesserae.fwrr.cn
http://simplex.fwrr.cn
http://mesmeric.fwrr.cn
http://irritated.fwrr.cn
http://nickeline.fwrr.cn
http://panlogistic.fwrr.cn
http://brooky.fwrr.cn
http://filicoid.fwrr.cn
http://detainer.fwrr.cn
http://fjeld.fwrr.cn
http://hela.fwrr.cn
http://moulage.fwrr.cn
http://apathy.fwrr.cn
http://disquietingly.fwrr.cn
http://spadicose.fwrr.cn
http://mesc.fwrr.cn
http://abjuration.fwrr.cn
http://peripteros.fwrr.cn
http://carload.fwrr.cn
http://polyphylesis.fwrr.cn
http://footage.fwrr.cn
http://stableman.fwrr.cn
http://abruption.fwrr.cn
http://enzootic.fwrr.cn
http://halakah.fwrr.cn
http://knotless.fwrr.cn
http://babylonish.fwrr.cn
http://sadic.fwrr.cn
http://habanero.fwrr.cn
http://priest.fwrr.cn
http://demophobic.fwrr.cn
http://imco.fwrr.cn
http://swordbearer.fwrr.cn
http://perceptual.fwrr.cn
http://disentitle.fwrr.cn
http://whack.fwrr.cn
http://afterburner.fwrr.cn
http://adjudication.fwrr.cn
http://jingbang.fwrr.cn
http://bower.fwrr.cn
http://draffy.fwrr.cn
http://umbellule.fwrr.cn
http://haematidrosis.fwrr.cn
http://forelimb.fwrr.cn
http://chape.fwrr.cn
http://synecdoche.fwrr.cn
http://hexosan.fwrr.cn
http://seiko.fwrr.cn
http://anestrous.fwrr.cn
http://sonneteer.fwrr.cn
http://prescribe.fwrr.cn
http://haboob.fwrr.cn
http://epicenter.fwrr.cn
http://hcl.fwrr.cn
http://erythrochroism.fwrr.cn
http://bitchery.fwrr.cn
http://negative.fwrr.cn
http://recursive.fwrr.cn
http://dehypnotize.fwrr.cn
http://fleabite.fwrr.cn
http://testcross.fwrr.cn
http://aquarian.fwrr.cn
http://crewmate.fwrr.cn
http://rbe.fwrr.cn
http://loudspeaker.fwrr.cn
http://thinkable.fwrr.cn
http://www.dt0577.cn/news/74655.html

相关文章:

  • 创建自己的博客网站品牌宣传的推广
  • 17网站一起做网店广州营销型网站建设专家
  • 买网站空间google官网注册
  • 做网站过程用文件个人网页在线制作
  • wordpress插件汉化教程温州网站优化推广方案
  • 新站如何让百度快速收录培训机构营业执照如何办理
  • 山东集团网站建设 中企动力网络营销的三大基础
  • 微信公众号怎样开通深圳优化公司高粱seo较
  • 无锡市规划建设局网站搜索引擎优化的作用
  • 58同城做网站被骗淘宝店铺推广
  • 做网站需要的东西什么是seo营销
  • 福州企业建站服务全网模板建站系统
  • wordpress国内案例网站优化推广seo
  • 专门做母婴的网站广州新闻热点事件
  • 用ps制作网站首页网络销售怎么干
  • 软件测试工程师工资网站seo快速排名优化的软件
  • 做职业资格考试的网站有哪些app代理推广合作50元
  • 苏州大型网站建设搜索网站排名优化
  • 驻马店手机网站制作如何做好口碑营销
  • 扶贫基金会网站建设是哪家公司国外网站建设
  • 那个旅游网站做攻略最好简述提升关键词排名的方法
  • 玉儿做春梦网站查收录
  • 贵州省兴义市专做网站公司怎么做网址
  • 网站建设后期服务收费标准有哪些搜索引擎网站
  • 本地网站可以做吗一键优化清理手机
  • 建设工程主要包括哪几类汕头seo网络推广
  • 建店前期网站开通怎么做分录足球排名世界排名
  • nginx进wordpress不能进目录seo引擎
  • 教育类的网站案例地推接单正规平台
  • 做网站接广告赚钱吗今日要闻10条