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 基础学习第二弹 类属性和实例属性
Aug 27 Python
介绍Python的Django框架中的静态资源管理器django-pipeline
Apr 25 Python
Python Queue模块详细介绍及实例
Dec 27 Python
用virtualenv建立多个Python独立虚拟开发环境
Jul 06 Python
python爬虫_微信公众号推送信息爬取的实例
Oct 23 Python
python matplotlib画图实例代码分享
Dec 27 Python
python使用response.read()接收json数据的实例
Dec 19 Python
python的turtle库使用详解
May 10 Python
50行Python代码获取高考志愿信息的实现方法
Jul 23 Python
Django 开发调试工具 Django-debug-toolbar使用详解
Jul 23 Python
基于python-pptx库中文文档及使用详解
Feb 14 Python
python eventlet绿化和patch原理
Nov 21 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
长波知识介绍
2021/03/01 无线电
第九节--绑定
2006/11/16 PHP
PHP中对于浮点型的数据需要用不同的方法解决
2014/03/11 PHP
php 实现银联商务H5支付的示例代码
2019/10/12 PHP
Javascript操纵Cookie实现购物车程序
2007/02/15 Javascript
获得所有表单值的JQuery实现代码[IE暂不支持]
2012/05/24 Javascript
JavaScript 判断用户输入的邮箱及手机格式是否正确
2013/12/08 Javascript
javascript设计模式之工厂模式示例讲解
2014/03/04 Javascript
javascript中this指向详解
2016/04/23 Javascript
Node使用Sequlize连接Mysql报错:Access denied for user ‘xxx’@‘localhost’
2018/01/03 Javascript
vue2.0 循环遍历加载不同图片的方法
2018/03/06 Javascript
浅谈vue父子组件怎么传值
2018/07/21 Javascript
vue v-for循环重复数据无法添加问题解决方法【加track-by='索引'】
2019/03/15 Javascript
Vue路由之JWT身份认证的实现方法
2019/08/26 Javascript
利用原生JS实现欢乐水果机小游戏
2020/04/23 Javascript
Vue实现菜单切换功能
2020/11/08 Javascript
如何在vue 中引入使用jquery
2020/11/10 jQuery
windows如何把已安装的nodejs高版本降级为低版本(图文教程)
2020/12/14 NodeJs
[01:02:06]LGD vs Mineski Supermajor 胜者组 BO3 第二场 6.5
2018/06/06 DOTA
Python中的__SLOTS__属性使用示例
2015/02/18 Python
python引用DLL文件的方法
2015/05/11 Python
python选择排序算法实例总结
2015/07/01 Python
Django框架多表查询实例分析
2018/07/04 Python
Python如何读取文件中图片格式
2020/01/13 Python
python能自学吗
2020/06/18 Python
Python的控制结构之For、While、If循环问题
2020/06/30 Python
查询优化的一般准则有哪些
2015/03/08 面试题
什么是.net
2015/08/03 面试题
高中军训第一天感言
2014/03/06 职场文书
新文化运动的口号
2014/06/21 职场文书
安全生产知识竞赛活动总结
2014/07/07 职场文书
幼儿园六一活动总结
2014/08/27 职场文书
诚实守信演讲稿
2014/09/01 职场文书
《微笑着面对生活》优秀演讲稿范文
2014/09/23 职场文书
故意伤害辩护词
2015/05/21 职场文书
西部计划志愿者工作总结
2015/08/11 职场文书