如何在 0.1 秒,找到被渣浪坑的王思聪

2023-10-30 05:30
文章标签 0.1 找到 王思聪 浪坑

本文主要是介绍如何在 0.1 秒,找到被渣浪坑的王思聪,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

今天我就教大家来写一个 Python 小程序,用来在众多相似的图片中,快速的找出我们的王校长。程序最后会用红色框框画出识别出的王校长,下图就是我们最后程序的结果。

程序很简单总共也不到 30 行的代码量,主要用到的库有 OpenCV 和 matplotlib。

 

OpenCV

OpenCV 的全称是 Open Source Computer Vision Library,是一个跨平台的计算机视觉库。OpenCV 是由英特尔公司发起并参与开发,以 BSD 许可证授权发行,可以在商业和研究领域中免费使用。OpenCV 可用于开发实时的图像处理、计算机视觉以及模式识别程序。

在 Python 中你可以通过 pip install oepncv-python 来安装 OpenCV 库。

import cv2
from matplotlib import pyplot as plt# 获取王思聪图片样本
template = cv2.imread('wangsicong.png')
# 设置与鸭子同等大小,并采用插值 inter_cubic 的方式进行重采样
template = cv2.resize(template, (31, 31), interpolation=cv2.INTER_CUBIC)
# 原图
img_rgb = cv2.imread('image.jpg')
# 识别结果
res = cv2.matchTemplate(img_rgb, template, cv2.TM_CCOEFF)

程序首先导入所需的库,然后再通过 cv2.imread 函数把我们需要识别的图片和样本先读取到,随后再使用 matchTemplate 函数来识别我们的图片。相应的代码里我都有注释。

 

 

通过 matchTemplate 函数我们可以得到一个识别结果 res,然后再通过这个变量我们可以获取到识别的坐标,最后我们用 cv2.rectangle 这个画长方形的函数,把王校长用红框标记出来,具体代码如下。

# 监测目标宽和高
w, h = template[:,:,0].shape[::-1]
print(w, h)
# print(w, h)
# 从匹配结果中得到一个锚
min_val, max_val, min_loc, max_loc = cv2.minMaxLoc(res)
# 画正方形
top_left = max_loc
bottom_right = (top_left[0] + w, top_left[1] + h)
imgplt = cv2.cvtColor(img_rgb, cv2.COLOR_BGR2RGB)
cv2.rectangle(imgplt, top_left, bottom_right, 255, 2)
plt.imshow(imgplt)
plt.title('Detected results'), plt.xticks([]), plt.yticks([])
plt.savefig("filename.png")
plt.show()

最后我们再写个 time 函数来计算花费的时间。

 

0.1 秒的时间内我们就把王校长给找出来,并且用红框标记出来。

完整代码: 链接: https://pan.baidu.com/s/1nUePH49q3WcijY-Khc_PrA 提取码: kbim

这篇关于如何在 0.1 秒,找到被渣浪坑的王思聪的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/305880

相关文章

在二叉树中找到两个节点的最近公共祖先(基于Java)

如题  题解 public int lowestCommonAncestor(TreeNode root, int o1, int o2) {//记录遍历到的每个节点的父节点。Map<Integer, Integer> parent = new HashMap<>();Queue<TreeNode> queue = new LinkedList<>();parent.put(roo

【JavaScript】0.1 + 0.2 = 0.30000000000000004该怎样理解?

如果你以前没了解过类似的坑,乍一看似乎觉得不可思议。但是某些语言下事实确实如此(比如 Javascript): 再看个例子,+1 后居然等于原数,没天理啊! 如果你不知道原因,跟着楼主一起来探究下精度丢失的过程吧。 事实上不仅仅是 Javascript,在很多语言中 0.1 + 0.2 都会得到 0.30000000000000004,为此还诞生了一个好玩的网站 0.30000000

Day18_0.1基础学习MATLAB学习小技巧总结(18)——MATLAB绘图篇(1)

利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍,为了在这个过程中加深印象,也为了能够有所足迹,我会把自己的学习总结发在专栏中,以便学习交流。 参考书目:《MATLAB基础教程 (第三版) (薛山)》 之前的章节都是基础的数据运算用法,对于功课来说更加重要的内容是建模、绘图、观察数据趋势,接下来我会结合自己的使用经验,来为大家分享绘图、建模使用的小技巧。 二维图形绘制 在本章开

Spring是如何找到URL请求对应的Controller的

文章来源 原文作者:Spring MVC 原文地址: https://blog.csdn.net/hl233211/article/details/77450697 http://ddrv.cn/a/58528 本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。 序:先贴一张SpringMVC整体的框架原理图 此文主要描述Spring在响应请求的时候是如何根据U

Day17_0.1基础学习MATLAB学习小技巧总结(17)——字符向量元胞数组

利用空闲时间把碎片化的MATLAB知识重新系统的学习一遍,为了在这个过程中加深印象,也为了能够有所足迹,我会把自己的学习总结发在专栏中,以便学习交流。 素材来源“数学建模清风” 特此说明:本博客的内容只在于总结在使用matlab中的一些小技巧,并非教程,若想系统的学习MATLAB,也可以移步去链接中的视频,观看学习。也欢迎各位在留言区补充,纠错,讨论。 原素材和学习视频地址:MATLAB教程

LeetCode438. 找到字符串中所有字母异位词(2024秋季每日一题 11)

给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串(包括相同的字符串)。 示例 1: 输入: s = “cbaebabacd”, p = “abc” 输出: [0,6] 解释: 起始索引等于 0 的子串是 “cba”, 它是 “abc” 的异位词。 起始索引等于 6 的子串是

涨幅超过了90%,心动网络股价成V字后,TapTap找到流量源了吗?

心动公司发布了截至2024年6月30日止六个月的中期业绩。 在2024年上半年(24H1),公司实现总营收22.21亿元,较去年同期增长了26.7%。归属于母公司的净利润达到2.05亿元,同比激增127.4%。经调整后,归属于母公司的净利润更是攀升至2.37亿元,同比增长率高达110.0%。 与业绩对应的是股价变化。 自2024年初以来,在港股市场近30只游戏软件相关股票

关于win7下Django无法找到manage.py

前一段时间学习Python-Django,由于目前对Linux还不是很熟悉所以就在window下学习了,用的是Python3.3在建立个人blog时就是找不到Django生成的文件,可是也不显示出错,在网上找了很多说是bug经过认真仔细观察终于发现了在电脑C盘用户本机里面,现在写出来希望有需要的不要再浪费精力了

【算法:二分查找】java算法二分查找,如何通过二分查找找到重复元素的第一个,coding

二分查找算法,是基于有序的结果集进行查询的 二分查找的时间复杂度是O(logN) 写一段二分查询的代码: public static void main(String[] args) {int[] data = new int[]{1, 2, 3, 3, 5, 5, 6, 8, 9, 9, 10};int queryData = 5;int index = queryDataIndex(qu

127.0.0.1与本机ip的区别

127.0.0.1是回送地址,指本地机。 127.0.0.1是用来检测网络的自己的IP.就是说任何一台电脑来说,不管是否连接到INTERNET上,127.0.0.1对于自己来说都是自己.就是说,每台电脑都是由4位的256进制数组成的. 而192.168.1.102现在是本机,但本机也可以设置成其他ip地址,但127.0.0.1一定是指本机。 多人会接触到这个ip地址127.0.0.1。也许