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字典排序实例详解
May 20 Python
Python中字符串的格式化方法小结
May 03 Python
python使用xpath中遇到:到底是什么?
Jan 04 Python
python中单下划线_的常见用法总结
Jul 10 Python
python分块读取大数据,避免内存不足的方法
Dec 10 Python
Python编程图形库之Pillow使用方法讲解
Dec 28 Python
详解Python数据分析--Pandas知识点
Mar 23 Python
PyQt4编程之让状态栏显示信息的方法
Jun 18 Python
python两个_多个字典合并相加的实例代码
Dec 26 Python
Python实现aes加密解密多种方法解析
May 15 Python
Pytorch 中的optimizer使用说明
Mar 03 Python
Python Pandas常用函数方法总结
Jun 15 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
服务器变量 $_SERVER 的深入解析
2013/07/02 PHP
php生成短网址示例
2014/05/05 PHP
PHP YII框架开发小技巧之模型(models)中rules自定义验证规则
2015/11/16 PHP
php生成mysql的数据字典
2016/07/07 PHP
php array_keys 返回数组的键名
2016/10/25 PHP
php将服务端的文件读出来显示在web页面实例
2016/10/31 PHP
PHP从数组中删除元素的四种方法实例
2017/05/12 PHP
基于jQuery的合并表格中相同文本的相邻单元格的代码
2011/04/06 Javascript
使用node.js 获取客户端信息代码分享
2014/11/26 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
2015/09/17 Javascript
js判断文本框输入的内容是否为数字
2015/12/23 Javascript
高性能JavaScript循环语句和条件语句
2016/01/20 Javascript
一波JavaScript日期判断脚本分享
2016/03/06 Javascript
ExtJS 4.2 Grid组件单元格合并的方法
2016/10/12 Javascript
jquery+Jscex打造游戏力度条
2020/09/12 Javascript
用Vue.js实现监听属性的变化
2016/11/17 Javascript
JavaScript中return用法示例
2016/11/29 Javascript
jQuery ajax动态生成table功能示例
2017/06/14 jQuery
create-react-app构建项目慢的解决方法
2018/03/14 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
2019/09/21 Javascript
原生js实现俄罗斯方块
2020/10/20 Javascript
Python list操作用法总结
2015/11/10 Python
python下载图片实现方法(超简单)
2017/07/21 Python
python下10个简单实例代码
2017/11/15 Python
Python自动化运维之IP地址处理模块详解
2017/12/10 Python
有关Python的22个编程技巧
2018/08/29 Python
Python3.5基础之NumPy模块的使用图文与实例详解
2019/04/24 Python
Django实现分页显示效果
2019/10/31 Python
Pyqt5 关于流式布局和滚动条的综合使用示例代码
2020/03/24 Python
python Xpath语法的使用
2020/11/26 Python
HTML5中input[type='date']自定义样式与日历校验功能的实现代码
2017/07/11 HTML / CSS
幼儿园教师演讲稿
2014/05/06 职场文书
警察先进个人事迹材料
2014/05/16 职场文书
2014年幼儿园小班工作总结
2014/12/04 职场文书
老干部座谈会主持词
2015/07/03 职场文书
解析Redis Cluster原理
2021/06/21 Redis