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 12 Python
在Django中限制已登录用户的访问的方法
Jul 23 Python
python利用OpenCV2实现人脸检测
Apr 16 Python
tensorflow中next_batch的具体使用
Feb 02 Python
python将文本中的空格替换为换行的方法
Mar 19 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
Jun 13 Python
python实现自动化上线脚本的示例
Jul 01 Python
python用for循环求和的方法总结
Jul 08 Python
Python实现病毒仿真器的方法示例(附demo)
Feb 19 Python
用python实现学生管理系统
Jul 24 Python
Python 如何查找特定类型文件
Aug 17 Python
python中取整数的几种方法
Nov 07 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
给海燕B411配件机起死回生配上件
2021/03/02 无线电
php实现的遍历文件夹下所有文件,编辑删除
2010/01/05 PHP
php多文件上传功能实现原理及代码
2013/04/18 PHP
编写php应用程序实现摘要式身份验证的方法详解
2013/06/08 PHP
PHP封装的Twitter访问类实例
2015/07/18 PHP
php中session定期自动清理的方法
2015/11/12 PHP
php ucwords() 函数将字符串中每个单词的首字符转换为大写(实现代码)
2016/05/12 PHP
PHP基于rabbitmq操作类的生产者和消费者功能示例
2018/06/16 PHP
javascript下过滤数组重复值的代码
2007/09/10 Javascript
Ajax,UTF-8还是GB2312 eval 还是execScript
2008/11/13 Javascript
玩转jQuery按钮 请告诉我你最喜欢哪些?
2012/01/08 Javascript
js自定义方法通过隐藏iframe实现文件下载
2013/02/21 Javascript
jQuery中获取Radio元素值的方法
2013/07/02 Javascript
artDialog双击会关闭对话框的修改过程分享
2013/08/05 Javascript
js和jquery如何获取图片真实的宽度和高度
2014/09/28 Javascript
浅谈JSON中stringify 函数、toJosn函数和parse函数
2015/01/26 Javascript
JavaScript中利用Array和Object实现Map的方法
2015/07/27 Javascript
JS 对象(Object)和字符串(String)互转方法
2016/05/20 Javascript
微信小程序 引用其他js文件实现代码
2017/02/22 Javascript
jquery插件ContextMenu设置右键菜单
2017/03/13 Javascript
JS控件bootstrap datepicker使用方法详解
2017/03/25 Javascript
ReactJs设置css样式的方法
2017/06/08 Javascript
JS立即执行函数功能与用法分析
2019/01/15 Javascript
用VueJS写一个Chrome浏览器插件的实现方法
2019/02/27 Javascript
vue实现多组关键词对应高亮显示功能
2019/07/25 Javascript
Python中生成器和yield语句的用法详解
2015/04/17 Python
基于Python实现通过微信搜索功能查看谁把你删除了
2016/01/27 Python
对Django 转发和重定向的实例详解
2019/08/06 Python
基于pygame实现童年掌机打砖块游戏
2020/02/25 Python
BeautifulSoup获取指定class样式的div的实现
2020/12/07 Python
使用HTML5和CSS3制作一个模态框的示例
2018/03/07 HTML / CSS
美国排名第一的泳池用品直接来源:In The Swim
2019/09/23 全球购物
介绍一下OSI七层模型
2012/07/03 面试题
毕业自我鉴定怎么写
2014/03/25 职场文书
小学教师寄语大全
2014/04/03 职场文书
贷款收入证明格式
2015/06/24 职场文书