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制作在地图上模拟瘟疫扩散的Gif图
Mar 31 Python
Python使用scrapy抓取网站sitemap信息的方法
Apr 08 Python
python使用arp欺骗伪造网关的方法
Apr 24 Python
Python的Bottle框架中返回静态文件和JSON对象的方法
Apr 30 Python
如何利用Fabric自动化你的任务
Oct 20 Python
Python设计模式之命令模式简单示例
Jan 10 Python
Python yield与实现方法代码分析
Feb 06 Python
python3+PyQt5实现自定义流体混合窗口部件
Apr 24 Python
python逆序打印各位数字的方法
Jun 25 Python
python for循环remove同一个list过程解析
Aug 14 Python
pytorch 固定部分参数训练的方法
Aug 17 Python
解决python pandas读取excel中多个不同sheet表格存在的问题
Jul 14 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和HTML5 FormData实现无刷新文件上传教程
2014/09/06 PHP
TP3.2.3框架文件上传操作实例详解
2020/01/23 PHP
jQuery 创建Dom元素
2010/05/07 Javascript
jQuery - css() 方法示例详解
2014/01/16 Javascript
基于JavaScript实现鼠标悬浮弹出跟随鼠标移动的带箭头的信息层
2016/01/18 Javascript
js实现内容显示并使用json传输数据
2016/03/16 Javascript
浅析Javascript ES6新增值比较函数Object.is
2016/08/24 Javascript
利用Javascript仿Excel的数据透视分析功能
2016/09/07 Javascript
使用JavaScript获取URL中的参数(两种方法)
2016/11/16 Javascript
JS获取多维数组中相同键的值实现方法示例
2017/01/06 Javascript
jQuery给表格添加分页效果
2017/03/02 Javascript
Vue.js实现多条件筛选、搜索、排序及分页的表格功能
2020/11/24 Javascript
详解使用JS如何制作简单的ASCII图与单极图
2017/03/31 Javascript
详解Vue 动态添加模板的几种方法
2017/04/25 Javascript
JS实现分页浏览横向图片(类轮播)实例代码
2017/11/06 Javascript
React注册倒计时功能的实现
2018/09/06 Javascript
解决vux 中popup 组件Mask 遮罩在最上层的问题
2020/11/03 Javascript
python技能之数据导出excel的实例代码
2017/08/11 Python
解决Python的str强转int时遇到的问题
2018/04/09 Python
详解小白之KMP算法及python实现
2019/04/04 Python
Pytorch中index_select() 函数的实现理解
2019/11/19 Python
解决Python命令行下退格,删除,方向键乱码(亲测有效)
2020/01/16 Python
无需压缩软件,用python帮你操作压缩包
2020/08/17 Python
python中turtle库的简单使用教程
2020/11/11 Python
美国运动鞋类和服装零售连锁店:Shoe Palace
2019/08/13 全球购物
技校教师求职简历的自我评价
2013/10/20 职场文书
企事业单位求职者的自我评价
2013/12/28 职场文书
考试不及格检讨书
2014/01/09 职场文书
端午节粽子促销活动方案
2014/02/02 职场文书
商场总经理岗位职责
2014/02/03 职场文书
创业计划实施的7大步骤
2014/02/05 职场文书
村安全生产责任书
2014/08/25 职场文书
医院办公室主任岗位职责
2015/04/01 职场文书
企业党员岗位承诺书
2015/04/27 职场文书
Pytorch DataLoader shuffle验证方式
2021/06/02 Python
K8s部署发布Golang应用程序的实现方法
2021/07/16 Golang