python之logo编程

Logo标志是一种视觉符号,代表着一个品牌、企业或组织的形象。它通常采用图形、字母或字形来代表一个公司或品牌,起到对徽标拥有公司的识别和推广的作用。Logo的设计需要考虑多种因素,例如颜色搭配、字体选择和构图等,以创造出独特且易于记忆的标志。

本例实现针对给定的logo图案,生成孔位坐标供钻孔加工出logo图案,具体如下:

输入:一张logo图片,钻孔半径,孔间距。

输出:孔位坐标。

实现原理:先读取图片,然后提取轮廓,针对每个轮廓计算其x、y坐标最大值和最小值,在这些值构成的矩形内划分正交网格,网格点为候选圆心坐标点,最后以候选点是否在轮廓内为条件进行筛选,得到最终满足条件的坐标点。

图:logo示例

import cv2
import numpy as np
def generate_grid(contour, spacing):con=np.squeeze(contour)x_min= np.min(con[:, 0])x_max = np.max(con[:, 0])y_min = np.min(con[:, 1])y_max = np.max(con[:, 1])x = np.arange(x_min-spacing, x_max+spacing, spacing)y = np.arange(y_min-spacing, y_max+spacing, spacing)xx, yy = np.meshgrid(x, y)return xx.flatten(), yy.flatten()
​
​
def draw_circle(img, hole_coordinates, radius):# 将hole_coordinates转换成numpy数组hole_coordinates = np.array(hole_coordinates)# 遍历每个圆心点坐标,画圆并显示在img中for coordinate in hole_coordinates:x, y = coordinatecv2.circle(img, (int(x), int(y)), radius, (0, 0, 255), -1)
​# 显示图像cv2.imshow('image', img)cv2.waitKey(0)cv2.destroyAllWindows()
​
​
def extract_logo_boundary(img):imginfo = img.shapeheight = imginfo[0]width = imginfo[1]gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
​# 二值化处理ret, binary = cv2.threshold(gray, 120, 255, cv2.THRESH_BINARY)
​# 找到所有轮廓contours, hierarchy = cv2.findContours(binary, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
​# 筛选轮廓logo_contours = []for contour in contours:area = cv2.contourArea(contour)if area > 100 and area < 0.5 * width * height:logo_contours.append(contour)
​# 在原图上绘制轮廓img_with_logo = img.copy()cv2.drawContours(img_with_logo, logo_contours, -1, (0, 0, 255), 6)
​# 显示图像cv2.imshow('Image with Logo', img_with_logo)cv2.waitKey(0)cv2.destroyAllWindows()
​return logo_contours
​
​
def generate_hole_coordinates(contour, hole_spacing):xx, yy = generate_grid(contour, hole_spacing)hole_coordinates = []for i, j in zip(xx, yy):pt=(i.astype(float),j.astype(float))# 使用cv2.pointPolygonTest()函数判断点是否在轮廓内result = cv2.pointPolygonTest(contour,pt, measureDist=False)if result >= 0:hole_coordinates.append((i, j))return hole_coordinates
​
​
if __name__ == "__main__":image_path = r"C:\Usersxxx\1.jpg"img = cv2.imread(image_path)logo_boundary = extract_logo_boundary(img)hole_spacing = 6radius = 2hole_coordinates=[]for bd in logo_boundary:hole_coordinates+=generate_hole_coordinates(bd, hole_spacing)draw_circle(img, hole_coordinates, radius)
​

图:提取的logo轮廓

图:获得的孔位结果

从程序运行结果可以看出,处理环形区域内部也计算了孔位坐标外,效果还可以,需要进一步去除环形区域内的孔位点。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/238231.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JDK21无法导入TimeUnit类

运行环境&#xff1a;windows11、IDEA2023.1.3、JDK21 问题描述&#xff1a;IDEA中无法导入java.util.concurrent.TimeUnit类。 以下截图是问题解决后的截图。有问题的时候未截图&#xff0c;说明一下&#xff0c;有问题的时候TimeUnit类是红色的&#xff0c;无法导入&#x…

ChatGPT有什么新奇的使用方式?

2023&#xff0c;ChatGPT几乎席卷了所有行业&#xff0c;并且具有不可测量的巨大潜力等着我们去挖掘。 越来越多人对ChatGPT的应用产生兴趣&#xff0c;知乎上“ChatGPT有什么新奇的使用方式&#xff1f;”这一个热门话题的兴起就是最好的证明。 写作&#xff0c;毫无疑问&…

AutoDL 使用记录

AutoDL 使用记录 1.租用新实例 创建实例需要依次选择&#xff1a;计费方式 → \to → 地区 → \to → GPU型号与数量 → \to → 主机 注意事项&#xff1a; 主机 ID&#xff1a;一个吉利的机号有助于炼丹成功价格&#xff1a;哪个便宜选哪个最高 CUDA 版本&#xff1a;影响…

Android--Jetpack--Lifecycle详解

富贵本无根&#xff0c;尽从勤里得 一&#xff0c;定义 Lifecycle 是一个具备宿主生命周期感知能力的组件。它持有组件&#xff08;Activity/Fragment&#xff09;生命周期状态信息&#xff0c;并且允许其观察者监听宿主生命周期状态变化。 顾名思义&#xff0c;Lifecycle的主…

SRE-架构框架-可靠性

Google-架构框架-可靠性 可靠性概览 Google Cloud 架构框架中的此类别介绍如何在云平台上构建和运营可靠的服务。此外&#xff0c;您还将了解一些支持可靠性的 Google Cloud 产品和功能。 该架构框架介绍了最佳实践&#xff0c;提供了实现建议&#xff0c;并说明了一些可用的…

UPDF 已集成 ChatGPT,AI 赋能注入新动能!

ChatGPT 掀起全球AI热潮,引发了世界范围内对AIGC未来会如何重塑各行各业的讨论与畅想。近日,由赛博爱思(上海)软件科技有限公司独立自主研发的国产 PDF 软件 UPDF完成版本更新,正式上线 AI 功能。据悉,UPDF AI完美集成了ChatGPT 的技术,可帮助用户智能阅读、总结、翻译、问答PD…

百度文心一言AI大模型,解读徐礼昭提出的“三体零售”模型

徐礼昭提出的“三体零售”模型是一种创新的零售理论模型&#xff0c;该模型将零售基础物质、零售商业能量和零售数字化系统视为一个相互作用的复杂有机体。这一理论模型为零售行业的发展提供了全新的视角和更高维度的认知。 首先&#xff0c;零售基础物质是零售行业的基石&…

目标检测——Fast R-CNN算法解读

论文&#xff1a;Fast R-CNN 作者&#xff1a;Ross Girshick 链接&#xff1a;https://arxiv.org/abs/1504.08083 代码&#xff1a;https://github.com/rbgirshick/fast-rcnn 目录 1、算法概述2、Fast R-CNN细节2.1The RoI pooling layer2.2 Fine-tuning for detection2.3 Fast…

2024 年综合网络安全审计清单

在网络威胁不断演变的时代&#xff0c;确保组织数据和系统的安全至关重要。 全面的网络安全审核清单可以在实现这一目标方面发挥关键作用。但是&#xff0c;什么才是有效的网络安全审核清单呢&#xff1f;以及如何对其进行定制以满足您组织的独特需求&#xff1f; 了解网络安…

cpu版本的torch可以用清华镜像源安装

一、来到pytroch官网找到如下代码 官方提供的默认的安装cpu版本的torch的命令 pip3 install torch torchvision torchaudio二、使用清华镜像安装 pip3 install torch torchvision torchaudio -i https://pypi.tuna.tsinghua.edu.cn/simple

python高级练习题库实验1(B)部分

文章目录 题目1代码实验结果题目2代码实验结果题目3代码实验结果题目4代码实验结果题目5代码实验结果题目总结题目1 打包糖果小游戏,用户输入糖果品牌与个数,还有一个盒子里面可以装多少个糖果,输出一些打印信息,如下图所示: 代码 print("Packaging lollies into…