分享缩略图

分享到:
链接已复制
首页> 新闻中心>

Python从0到100(74):计算机视觉

2025-06-24 09:39:54

来源:新华网

字体:

在这里插入图片描述

前言:Python零基础学习#xff1a;最新最全教程Python从0到100。想做这件事很久了,这一次,我更新了我写的所有博客,Python从0到100࿰集成c;共100节课󿀌帮助您从零基础到学习Python基础语法、Python爬虫、Web开发一个月 与计算机视觉、机器学习、神经网络和人工智能相关的知识,成为学习和学习的先驱!
欢迎订阅专栏:Python零基础学习#xff1a;Python从0到100最新最全教程󿼁

计算机视觉CV是人工智能的一个非常重要的领域。 在这个距离变换任务中,我们将使用它。D4距离测量方法。处理图像。通过这个实验,我们可以更好地理解距离测量在计算机视觉中的应用。希望大家对计算机视觉和图像处理有更深入的了解。我们来看看实际的计算结果和可视化效果༁距离变换是一种常用的方法,它可以帮助我们计算每个像素点与最近前景像素点之间的距离。这对图像分析、目标检测和图像匹配至关重要。

D4距离被定义为两个像素点之间水平和垂直方向的绝对距离之和。通过这种测量方法,从每个像素点到最近的前景像素点,我们可以得到距离。测试距离变换的效果,我们。首先随机生成一个8*8大小的图像。,并随机选择其中10个像素作前景像素。前景像素用1表示,以0表示背景像素。接下来,我们实现了一个距离函数,用于计算两个像素点之间的D4距离。然后,通过浏览图像中的每个像素,,计算它与它最近的前景像素之间的距离,并将结果保存到距离矩阵中。最后,我们可视化原始图像和距离变换后的结果。。用灰度图像表示原始图像,黑色像素点代表随机生成的前景像素点。在距离变换结果中使用“cool显示颜色映射,远像素点呈现浅色,最近的像素点呈现较深的颜色。1. 导入必要的库。首先,我们需要导入必要的库,Numpy和Matplotlib库。import。

numpy。

as。

np。import。 matplotlib。.。pyplot。as。plt。2. 生成随机图像,定义距离测量 随机生成 0/1 像素值图片,大小为 8*8,0 背景像素,1 前景像素。image。

=

np。

.。 random。.。randint。(。2。,size。=(8.,8.)。print。(。'原始图片󿄚\n',image。)。随机选取 10 前景像素:for。i。in。

在这里插入图片描述
range。

(10. )。:。x。,y。=np。.。random。 .。randint。(。8。,size。=2。)。image。[。x。,y。]。=1。print。(。'选择前景像素后的图片:\n',image。)。选择前景像素后的图片:[[1 0 1 1 0 1 0 1]。[0 1 1 0 1 0 0 0]。[1 1 1 1 1 1 0 1]。

[0 0 1 0 1 0 1 0]。
[0 1 1 0 0 1 0 1]。
[0 1 1 1 1 1 1 1]。
[1 1 1 1 1 0 1 1]。
[0 1 0 1 0 0 1 1]]。
3. 改变距离。
D4距离介绍: 像素p(x,y)和q(s,t)D4距离定义为: = |x – s| + |y – t|。
D4距离变换算法是一种常用的图像处理算法,用于计算图像中像素点与最近前景像素点之间的距离。
#xff0在D4距离变换算法中c;D4代表了。

四邻域距离度量。

。它。
只考虑像素点在水平和垂直方向上的差异,而忽略了对角线方向的差异。
以下是算法步骤:与原始图像大小相同的初始化距离矩阵,所有背景像素点的距离值为0。从图像中选择一个前景像素作为起点。每个背景像素࿰遍历图像c;并计算其D4距离到起点像素点。

比较当前像素点与起点之间的距离和之前计算的最小距离,如果当前距离较小󿀌将像素点的距离值更新为当前距离。

  1. 重复第三步和第四步c;直到所有的背景像素都完成。
  2. 选择下一个前景像素作为起点,重复上述步骤󿀌直到所有的前景像素都完成。
  3. 最终的距离矩阵是距离变换的结果,每个像素点的距离值表示像素点与其最近的前景像素点之间的距离。
  4. 定义距离函数。
  5. def。
  6. dist。
  7. (。

p1。

,p2。,metric。='D4')。:。if。metric。=='D4':。return。 abs。(。p1。[。0]。-。p2。[。0]。)。+abs。(。p1。[。1。]。-。p2。[。1。]。)。elif。metric。=='D8':。return。 max。(。abs。(。p1。[。0]。-。p2。[。0]。)。,abs。(。p1。[。1。]。-。p2。[。1。]。)。)。产生距离矩阵。matrix。=np。

.。

zeros_like。 (。image。)。for。i。in。range。(。image。 .。shape。[。0]。)。:。for。j。in。range。(。image。 .。shape。[。1。]。)。:。# 背景像素的距离为 0。if。image。[。i。,j。]。==0:。matrix。[。i。,j。]。=0else。:。# 初始化为一个巨大的数字。min_dist。=99999。for。m。 in。range。(。image。 .。shape。[。0]。)。:。for。n。in。range。(。image。 .。shape。[。1。]。)。:。# 只计算背景像素的距离。if。image。[。m。,n。]。==0:。d。=dist。(。(。 i。,j。)。,(。m。,n。)。,metric。='D4')。if。d。<min_dist。:。min_dist。 =d            matrix。[。i。 ,j。]。=min_dist。print。(。'距离变换后的结果:\n',            matrix。)。距离变换后的结果:[[1 0 1 1 0 1 0 1]。[0 1 1 0 1 0 0 0]。[1 1 2 1 2 1 0 1]。

[0 0 1 0 1 0 1 0]。
[0 1 1 0 0 1 0 1]。
[0 1 2 1 1 1 1 2]。
[1 2 1 2 1 0 1 2]。
[0 1 0 1 0 0 1 2]]。
4. 可视化处理。
这里,我们使用灰度图像来表示原始图像󿀌黑色像素点代表随机生成的像素点。使用“cool颜色映射可视化距离变换的结果。
Original Image。
plt。

.。

imshow。
(。

image。,cmap。='gray')。plt。.。title。(。'Original Image')。plt。.。show。(。)。Distance Transformed Image。plt。.。imshow。

在这里插入图片描述
(。

matrix。,cmap。='cool')。plt。.。title。(。'Distance Transformed Image')。plt。.。colorbar。(。)。plt。.。show。(。)。本文介绍了计算机视觉中的距离度量,并使用随机生成的像素点进行测试,并可视化显示计算结果。下面我将继续扩展这篇文章。5. 结果分析。通过上述代码󿀌距离变换后,我们可以得到结果。结果中,黑色像素点表示随机生成的前景像素点,其它颜色表示从每个像素点到最近的前景像素点之间的距离。我们可以看到󿀌从每个像素点到前景像素点的距离信息都能清晰地显示出距离变化后的图像。远像素点呈现浅色,而最近的像素点呈现出较深的颜色。总结。

在这里插入图片描述
距离测量广泛应用于计算机视觉CV领域。࿰等任务,如图像分割、图像匹配、目标检测和目标跟踪c;图像处理和分析都需要计算像素之间的距离。距离变换可以帮助我们更好地理解像素之间的关系和结构,并为后续的图像处理工作提供基础和参考。

文末送书。

Dream送书活动-第46期。

《AI 时代:弯道超车新思维免费邮寄三本! 参与方式:

1.喜欢收藏文章。

2.在评论区留言:人生苦短󿀌我用Python!(可以评论三条)

3.随机抽取3个免费送出!
4.截止时间: 2024-12-03。

5.上一期中奖名单:zhaohaooo、小昭-May、2401_843977-xffc;请在三天内私信我提供获奖信息。
本期推荐:
《AI 时代:弯道超车新思维—— 开启 AI 时代新征程。
京东:https://item.jd.com/14859464.html。
《AI 时代:弯道超车新思维是李尚龙精心打磨的结果。࿰在书中c;他以极具亲和力的方式,在读者面前清晰地呈现了人工智能的发展历程。原本晦涩难懂的科技术语,他的作品都变成了通俗易懂的表达,让普通人很容易理解。八章全书精心布局󿀌从 “AI 前世今生” 起始,逐渐深入到 “AI 时代变迁”,直至 “AI 个人发展较低。每一章都仔细分析了这个机遇与挑战并存的新时代,并且对每一个环节都给予了极大的前瞻性 “答案” 以及可行的解决方案。

这个信息爆炸了 AI 时代,知识本身不再是稀缺资源,关键在于理解和应用知识的能力。这本书的核心价值在于它可以帮助读者重塑 AI 时代的新思维方式,学会巧妙地 “利用问题” 来驾驭 AI,通过提出有价值的问题,挖掘未来 “答案”,然后实现思维和能力的巨大飞跃。
正如李尚龙所说󿄚“未来五到十年󿀌拥抱技术是普通人唯一的出路。” 在这个 AI 引领时代,《AI 时代:弯道超车的新思维是你通往未来的好老师和朋友,来开始你的人工智能探索之旅!
在这里插入图片描述

【责任编辑:新华网】
返回顶部