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正则匹配查询港澳通行证办理进度示例分享
Dec 27 Python
使用C语言扩展Python程序的简单入门指引
Apr 14 Python
Python使用Selenium模块模拟浏览器抓取斗鱼直播间信息示例
Jul 18 Python
Python实现网站表单提交和模板
Jan 15 Python
pandas删除行删除列增加行增加列的实现
Jul 06 Python
用Python做一个久坐提醒小助手的示例代码
Feb 10 Python
在PyCharm中实现添加快捷模块
Feb 12 Python
Python实现计算图像RGB均值方式
Jun 04 Python
python文件及目录操作代码汇总
Jul 08 Python
Django 实现图片上传和下载功能
Dec 31 Python
python自动化办公操作PPT的实现
Feb 05 Python
怎么用Python识别手势数字
Jun 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
php 大数据量及海量数据处理算法总结
2011/05/07 PHP
php 问卷调查结果统计
2015/10/08 PHP
PHP设计模式之装饰器模式实例详解
2018/02/07 PHP
Swoole 5将移除自动添加Event::wait()特性详解
2019/07/10 PHP
关于laravel 数据库迁移中integer类型是无法指定长度的问题
2019/10/09 PHP
动态加载js、css等文件跨iframe实现
2014/02/24 Javascript
自写的jQuery异步加载数据添加事件
2014/05/15 Javascript
JavaScript中return false的用法
2015/03/12 Javascript
JavaScript图片轮播代码分享
2015/07/31 Javascript
jQuery实现简单的列表式导航菜单效果代码
2015/08/31 Javascript
jQuery简单实现上下,左右滑动的方法
2016/06/01 Javascript
原生JavaScript实现精美的淘宝轮播图效果示例【附demo源码下载】
2017/05/27 Javascript
nodejs利用ajax实现网页无刷新上传图片实例代码
2017/06/06 NodeJs
使用Bootrap和Vue实现仿百度搜索功能
2017/10/26 Javascript
vue监听键盘事件的快捷方法【推荐】
2018/07/11 Javascript
vue-quill-editor+plupload富文本编辑器实例详解
2018/10/19 Javascript
vue中的适配px2rem示例代码
2018/11/19 Javascript
JS中数据结构之栈
2019/01/01 Javascript
搭建一个nodejs脚手架的方法步骤
2019/06/28 NodeJs
Vue最新防抖方案(必看篇)
2019/10/30 Javascript
Vue + ts实现轮播插件的示例
2020/11/10 Javascript
[15:46]教你分分钟做大人——沙王
2015/03/11 DOTA
Python获取单个程序CPU使用情况趋势图
2015/03/10 Python
Python编程使用NLTK进行自然语言处理详解
2017/11/16 Python
python3爬取淘宝信息代码分析
2018/02/10 Python
浅谈Python 列表字典赋值的陷阱
2019/01/20 Python
Python基于scipy实现信号滤波功能
2019/05/08 Python
Python3实现将一维数组按标准长度分隔为二维数组
2019/11/29 Python
Python如何基于smtplib发不同格式的邮件
2019/12/30 Python
tensorflow指定GPU与动态分配GPU memory设置
2020/02/03 Python
浅析Python打包时包含静态文件处理方法
2021/01/15 Python
教师师德演讲稿
2014/05/06 职场文书
市场营销战略计划书
2014/05/06 职场文书
党的群众路线教育实践活动党员个人剖析材料
2014/10/08 职场文书
2015中学教师个人工作总结
2015/07/22 职场文书
css样式important规则的正确使用方式
2022/06/10 HTML / CSS