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


Posted in Python onApril 08, 2021

本文实例为大家分享了python实现求纯色彩图像的边框,供大家参考,具体内容如下

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

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

放大局部细节看是这样的

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

原图是下面这样的

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

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

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

代码如下.

#
# demo.py
# 识别单张图片
#
import argparse
import os 
import numpy as np
import time

from modeling.deeplab import *
from dataloaders import custom_transforms as tr
from PIL import Image
from torchvision import transforms
from dataloaders.utils import  *
from torchvision.utils import make_grid, save_image,to_image

import matplotlib
matplotlib.use('TkAgg')
import matplotlib.pyplot as plt

def 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下使用Txt2Html实现网页过滤代理的教程
Apr 11 Python
Python自动生产表情包
Mar 17 Python
Python基于Socket实现的简单聊天程序示例
Aug 05 Python
python 删除大文件中的某一行(最有效率的方法)
Aug 19 Python
python实现数独游戏 java简单实现数独游戏
Mar 30 Python
python清除函数占用的内存方法
Jun 25 Python
Python2实现的图片文本识别功能详解
Jul 11 Python
python实现Excel文件转换为TXT文件
Apr 28 Python
Python Flask框架模板操作实例分析
May 03 Python
python爬虫之自制英汉字典
Jun 24 Python
Pycharm中Python环境配置常见问题解析
Jan 16 Python
python递归函数求n的阶乘,优缺点及递归次数设置方式
Apr 02 Python
python爬取企查查企业信息之selenium自动模拟登录企查查
Python3 使用pip安装git并获取Yahoo金融数据的操作
Apr 08 #Python
Django 如何实现文件上传下载
Apr 08 #Python
python3 删除所有自定义变量的操作
Apr 08 #Python
pytorch显存一直变大的解决方案
Apr 08 #Python
Python文件的操作示例的详细讲解
Django展示可视化图表的多种方式
You might like
PHP 中的面向对象编程:通向大型 PHP 工程的办法
2006/12/03 PHP
收集的PHP中与数组相关的函数
2007/03/22 PHP
PHP详细彻底学习Smarty
2008/03/27 PHP
php入门学习知识点二 PHP简单的分页过程与原理
2011/07/14 PHP
PHP实现的简易版图片相似度比较
2015/01/07 PHP
浅谈PHP错误类型及屏蔽方法
2017/05/27 PHP
javascript 得到变量类型的函数
2010/05/19 Javascript
JS+CSS实现可拖动的弹出提示框
2015/02/16 Javascript
Bootstrap每天必学之缩略图与警示窗
2015/11/29 Javascript
vue组件间通信解析
2017/03/01 Javascript
vue双向数据绑定知识点总结
2018/04/18 Javascript
node实现登录图片验证码的示例代码
2018/04/20 Javascript
通过jquery toggleClass()属性制作文章段落更改背景颜色
2018/05/21 jQuery
vue生命周期实例小结
2018/08/15 Javascript
在vue中更换字体,本地存储字体非引用在线字体库的方法
2018/09/28 Javascript
JavaScript使用闭包模仿块级作用域操作示例
2019/01/21 Javascript
使用webpack搭建pixi.js开发环境
2020/02/12 Javascript
JavaScript鼠标悬停事件用法解析
2020/05/15 Javascript
[05:08]第一届“网鱼杯”DOTA2比赛精彩集锦
2014/09/05 DOTA
[45:17]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第三场 1月9日
2021/03/11 DOTA
使用Protocol Buffers的C语言拓展提速Python程序的示例
2015/04/16 Python
在Python的Flask框架中验证注册用户的Email的方法
2015/09/02 Python
Python程序运行原理图文解析
2018/02/10 Python
浅谈python中拼接路径os.path.join斜杠的问题
2018/10/23 Python
Python数据相关系数矩阵和热力图轻松实现教程
2020/06/16 Python
用python实现学生管理系统
2020/07/24 Python
Peter Alexander新西兰站:澳大利亚领先的睡衣设计师品牌
2016/12/10 全球购物
如何处理简单的PHP错误
2015/10/14 面试题
捷科时代的软件测试笔试题
2015/11/09 面试题
初中校园之声广播稿
2014/01/15 职场文书
小学教师节活动方案
2014/01/31 职场文书
学生请假条
2014/04/11 职场文书
质量月口号
2014/06/20 职场文书
先进工作者推荐材料
2014/12/23 职场文书
大学生干部培训心得体会
2016/01/06 职场文书
CSS font-variation 可变字体的魅力(实例详解)
2022/03/03 HTML / CSS