文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

python实现求纯色彩图像的边框的方法

2023-06-14 10:59

关注

这篇文章主要讲解了“python实现求纯色彩图像的边框的方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“python实现求纯色彩图像的边框的方法”吧!

python是什么意思

Python是一种跨平台的、具有解释性、编译性、互动性和面向对象的脚本语言,其最初的设计是用于编写自动化脚本,随着版本的不断更新和新功能的添加,常用于用于开发独立的项目和大型项目。

先上效果图,这里显示有点色差, 实际数值是纯色的, 而不是混色的.

python实现求纯色彩图像的边框的方法

放大局部细节看是这样的

python实现求纯色彩图像的边框的方法

原图是下面这样的

python实现求纯色彩图像的边框的方法

这个算法最大的特点是保留原始像素的数值, 而不是把边框统一变成白色.
实现的算法也超级简单. 就是有点慢. 考虑到我这个应用场景对性能要求不高, 比人快就行. 人工是它的几百倍. 所以也就无所谓啦.
测试结果一张1080*1920的图用时3秒, 如果换成c语言估计0.5秒左右.

算法原理, 每次4个田子形像素逐行扫描. 发现4个像素不一致的就输出到结果图上. 否则就是输出0.

代码如下.

## demo.py# 识别单张图片#import argparseimport os import numpy as npimport timefrom modeling.deeplab import *from dataloaders import custom_transforms as trfrom PIL import Imagefrom torchvision import transformsfrom dataloaders.utils import  *from torchvision.utils import make_grid, save_image,to_imageimport matplotlibmatplotlib.use('TkAgg')import matplotlib.pyplot as pltdef main():    im = Image.open("test_border.png")    npimg = np.array(im) # 这个图片是1维的索引图.     # chwimg = npimg.transpose(2,0,1) # HWC 变成 CHW 格式的矩阵    print(npimg.shape)    h,w,c = npimg.shape    src = np.sum(npimg,axis=2) # 这里测试用, 先把3通道的合成了一个通道的, 实际使用的时候也是1通道的.    print(src.shape)    borderimg = np.zeros(src.shape) #默认都输出了0 后面就不用输出0了.    # 修补bug, 解决边框线会丢失的问题.    borderimg[0,:]=src[0,:]    borderimg[:,0]=src[:,0]    borderimg[-1,:]=src[-1,:]    borderimg[:,-1]=src[:,-1]       t1= time.time()    for x in range(0,h-1,1):         for y in range(0,w-1,1):            # point = src[x,y]            # if(point>0):                # print(point)            if not (src[x,y] == src[x+1,y] == src[x,y+1] == src[x+1,y+1]): # 发现4个像素不一致的就输出到结果图上.                borderimg[x,y] = src[x,y]                borderimg[x+1,y] = src[x+1,y]                borderimg[x,y+1] = src[x,y+1]                borderimg[x+1,y+1] = src[x+1,y+1]    t2= time.time()    print("耗时",t2-t1)    plt.figure()    plt.title('display')     plt.imshow(src)     plt.show( )    plt.imshow(borderimg)     plt.show( )    print("start test get image border ...")if __name__ == "__main__":    main()else:    main()

感谢各位的阅读,以上就是“python实现求纯色彩图像的边框的方法”的内容了,经过本文的学习后,相信大家对python实现求纯色彩图像的边框的方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯