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

网站建设申请理由国庆贺卡制作图片

网站建设申请理由,国庆贺卡制作图片,深圳网站建设代理,没有网站怎么做百度竞价利用Python实现了一个图像处理功能#xff0c;即批量提取图像中的印章区域#xff1b;使用了颜色聚类的方法来提取颜色。 本代码也发布到了github#xff0c;欢迎大家试用#xff08;如果帮助#xff0c;请star一下#xff09;#xff1a; GitHub - AICVHub/seal_seg_o… 利用Python实现了一个图像处理功能即批量提取图像中的印章区域使用了颜色聚类的方法来提取颜色。 本代码也发布到了github欢迎大家试用如果帮助请star一下 GitHub - AICVHub/seal_seg_opencv: pyhon opencv seal segpyhon opencv seal seg. Contribute to AICVHub/seal_seg_opencv development by creating an account on GitHub.https://github.com/AICVHub/seal_seg_opencv.git 目录 1. 方法 2. 代码 3. 运行结果 1. 方法 K-means 聚类 (kmeans_color_quantization 函数): 通过将图像从BGR颜色空间转换到HSV颜色空间并使用K-means聚类算法来找到图像中的主要颜色。K-means算法是一种无监督学习算法用于将数据点划分为K个簇使得每个数据点与其所属簇的中心距离之和最小。 颜色阈值 (extract_seal_with_kmeans 函数): 根据聚类得到的颜色中心创建HSV颜色空间中的上下界限以确定与印章颜色相似的像素范围。通过调整hue_threshold参数可以控制颜色相似度的敏感度。 掩码生成: 使用cv2.inRange函数根据颜色阈值生成掩码这些掩码用于识别图像中可能包含印章的区域。 掩码膨胀 (cv2.dilate 函数): 对生成的掩码进行膨胀操作以填补印章区域中的小空洞或连接断裂的部分。 图像合成: 使用掩码提取印章区域并将其与原图结合在一个透明的背景上。这里使用了PIL库Python Imaging Library来处理图像的透明度和合成。 批量处理 (batch_extract_seals_with_dominant_color 函数): 遍历指定文件夹中的所有图像对每个图像执行印章提取和合成操作并将结果保存到另一个文件夹。 2. 代码 import cv2 import numpy as np import os from sklearn.cluster import KMeans from PIL import Imagedef kmeans_color_quantization(hsv_image, k2):使用 K-means 聚类找到图像中的主要颜色。# 重新调整图像大小以加速聚类过程resized_image cv2.resize(hsv_image, (0, 0), fx0.5, fy0.5)# 将图像数据转换为二维数组每行是一个像素的 HSV 值reshaped_image resized_image.reshape(-1, 3)# 应用 K-means 聚类kmeans KMeans(n_clustersk)kmeans.fit(reshaped_image)# 返回聚类中心return kmeans.cluster_centers_def extract_seal_with_kmeans(image_path, output_path, k4, hue_threshold15):image cv2.imread(image_path)if image is None:print(fImage not found at {image_path})returnhsv_image cv2.cvtColor(image, cv2.COLOR_BGR2HSV)dominant_colors kmeans_color_quantization(hsv_image, kk)masks []for color in dominant_colors:lower_color np.array([color[0] - hue_threshold, 100, 100])upper_color np.array([color[0] hue_threshold, 255, 255])mask cv2.inRange(hsv_image, lower_color, upper_color)masks.append(mask)combined_mask cv2.bitwise_or(masks[0], masks[1]) if len(masks) 1 else masks[0]# 膨胀掩码kernel np.ones((3, 3), np.uint8)final_mask cv2.dilate(combined_mask, kernel, iterations1)# 提取印章区域seal cv2.bitwise_and(image, image, maskfinal_mask)# 将OpenCV图像转换为PIL图像original_image Image.open(image_path).convert(RGBA)seal_pil Image.fromarray(cv2.cvtColor(seal, cv2.COLOR_BGR2RGBA)).convert(RGBA)# 计算新图像的宽度原图宽度加上印章区域宽度original_width, original_height original_image.sizeseal_width, seal_height seal_pil.sizenew_width original_width seal_widthnew_height max(original_height, seal_height)# 创建一个全透明的图像用于左右拼接transparent_background Image.new(RGBA, (new_width, new_height), (0, 0, 0, 0))# 将原图粘贴到透明背景上transparent_background.paste(original_image, (0, 0))# 将印章区域粘贴到透明背景的右侧transparent_background.paste(seal_pil, (original_width, 0), seal_pil)# 保存结果transparent_background.save(output_path)print(fOriginal image and extracted seal combined with transparent background saved to {output_path})def batch_extract_seals_with_dominant_color(input_dir, output_dir):批量处理文件夹中的所有图像使用主要颜色进行印章提取。参数:- input_dir: 包含输入图像的文件夹路径。- output_dir: 输出图像的保存文件夹路径。if not os.path.exists(output_dir):os.makedirs(output_dir)for filename in os.listdir(input_dir):image_path os.path.join(input_dir, filename)output_path os.path.join(output_dir, os.path.splitext(filename)[0].png)extract_seal_with_kmeans(image_path, output_path)# 使用示例 if __name__ __main__:import argparseparser argparse.ArgumentParser(descriptionBatch extract seals with dominant color from images.)parser.add_argument(--input_dir, default/data/projects/Matting/modnet_demo/seals,helpPath to the folder containing input images.)parser.add_argument(--output_dir, default/data/projects/Matting/modnet_demo/output_seals_01,helpPath to the folder for saving output images.)args parser.parse_args()batch_extract_seals_with_dominant_color(args.input_dir, args.output_dir) 关于其中一些方法的说明 KMeans KMeans 是一个在机器学习库 scikit-learn 中实现的 K-means 聚类算法的类。K-means 聚类是一种无监督学习算法它的目标是将数据点划分为 K 个簇使得每个数据点与其所属簇的中心即聚类中心之间的距离之和最小。这种算法在许多领域都有应用包括图像处理、市场细分、天文数据分析等。 以下是 KMeans 类的一些关键点 初始化 (__init__ 方法): 当你创建一个 KMeans 实例时你需要指定 n_clusters 参数它代表你想要划分的簇的数量。在这个例子中k 就是这个参数的值。 拟合数据 (fit 方法): 调用 fit 方法时你需要传递一个数据集通常是二维数组的形式其中每行代表一个数据点每列代表一个特征。KMeans 会根据这些数据点初始化簇中心并迭代地调整簇中心的位置直到满足停止条件如达到一定的迭代次数或簇中心的变化小于某个阈值。 聚类中心 (cluster_centers_ 属性): 聚类完成后KMeans 实例的 cluster_centers_ 属性会包含 K 个聚类中心的坐标。每个聚类中心是一个向量其维度与输入数据的特征维度相同。 标签分配 (labels_ 属性): 除了聚类中心KMeans 还会为每个输入数据点分配一个标签表示它属于哪个簇。这个标签分配是通过计算数据点与各个聚类中心之间的距离来决定的数据点会被分配到最近的聚类中心所代表的簇。 优化: K-means 算法在初始化簇中心时可能会陷入局部最优因此可能需要多次运行以获得更好的结果。KMeans 类提供了 init 参数来指定初始化方法例如 initk-means这是一种更智能的初始化方法可以提高找到全局最优解的概率。 灵活性: KMeans 类还提供了其他参数来调整算法的行为比如 max_iter最大迭代次数、tol收敛阈值等。  cv2.inRange 在OpenCV中cv2.inRange 函数用于创建一个掩码mask该掩码将图像中与指定颜色范围匹配的像素设置为白色即像素值为255而将不匹配的像素设置为黑色即像素值为0。这个函数在图像处理中非常有用特别是在需要根据颜色来分割图像时。 3. 运行结果
http://www.dnsts.com.cn/news/233548.html

相关文章:

  • 学做网站先学什么seo关键词优化培训班
  • 国外做贸易网站ui设计自学教程500集
  • 网站的登录功能一般是用cookie做的近一周内的热点新闻
  • 网站不清理缓存wordpress电子邮件怎么设置
  • 曰本免费网站常州商城网站制作公司
  • php网站建设费用注册一个商标多少钱
  • 规划设计导航网站电子政务公开 网站建设
  • 网站被如何在阿里云上建设网站
  • 做黑帽需不需要搭建网站网络服务提供者发现未成年通过网络发布
  • 青岛市专业做网站的吗国家企业信息信用信息公示江苏
  • 网站建设按什么合同交印花税中国菲律宾关系现状
  • 怎么做批量的网站检查thinkphp租房网站开发
  • 租车网站制作网站不兼容怎么办啊
  • 做网站的任务书网站开发与设计
  • 中国第一个做电商网站wordpress点击分类目录404
  • 昆明门户网站公众号登录平台登录入口
  • 深圳美容网站建广州天河区网站建设
  • 网站建设公司公司介绍广州番禺网站制作推广
  • 石家庄市住房建设局网站淄博市住房和城乡建设厅网站
  • 网站托管服务适合wordpress主要标签
  • 武清网站开发tjniu做平台网站一般有php还是js
  • 大连网站开发乛薇在征婚网站上认识做期货
  • 大同网站建设制作微信公众号怎样发布wordpress
  • phpcms网站模板怎样做相亲网站
  • 如何快速做企业网站包括商城自建网站模板下载
  • 仿牌网站建设网站建设需要什么岗位的人
  • 河北新闻最新消息今天济南seo推广价格
  • 网站开发w亿玛酷1专注有侧边栏的网站
  • 宁波网站建设rswl做网站流量怎么卖
  • 廊坊企业做网站做知乎网站要多少钱