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 sys模块sys.path使用方法示例
Dec 04 Python
python发送伪造的arp请求
Jan 09 Python
python3.5仿微软计算器程序
Mar 30 Python
从头学Python之编写可执行的.py文件
Nov 28 Python
EM算法的python实现的方法步骤
Jan 02 Python
深入浅析Python的类
Jun 22 Python
Python闭包函数定义与用法分析
Jul 20 Python
使用Python调取任意数字资产钱包余额功能
Aug 15 Python
python——全排列数的生成方式
Feb 26 Python
Python自动采集微信联系人的实现示例
Feb 28 Python
python 爬取百度文库并下载(免费文章限定)
Dec 04 Python
python RSA加密的示例
Dec 09 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脚本中include文件出错解决方法
2008/11/20 PHP
用php随机生成福彩双色球号码的2种方法
2013/02/04 PHP
php解析字符串里所有URL地址的方法
2015/04/03 PHP
PHP二分查找算法示例【递归与非递归方法】
2016/09/29 PHP
php arsort 数组降序排序详细介绍
2016/11/17 PHP
调试php程序的简单步骤
2019/10/04 PHP
jQuery Ajax请求状态管理器打包
2012/05/03 Javascript
Jquery插件分享之气泡形提示控件grumble.js
2014/05/20 Javascript
jquery实现鼠标滑过小图查看大图的方法
2015/07/20 Javascript
javascript使用Promise对象实现异步编程
2016/03/01 Javascript
jQuery中Ajax全局事件引用方式及各个事件(全局/局部)执行顺序
2016/06/02 Javascript
JavaScript用构造函数如何获取变量的类型名
2016/12/23 Javascript
jQuery无刷新上传之uploadify简单代码
2017/01/17 Javascript
nodejs判断文件、文件夹是否存在及删除的方法
2017/11/10 NodeJs
VUE2.0+Element-UI+Echarts封装的组件实例
2018/03/02 Javascript
axios取消请求的实践记录分享
2018/09/26 Javascript
JS 验证码功能的三种实现方式
2018/11/26 Javascript
nuxt静态部署打包相对路径操作
2020/11/06 Javascript
Python实现的Google IP 可用性检测脚本
2015/04/23 Python
python编程实现随机生成多个椭圆实例代码
2018/01/03 Python
python pandas中DataFrame类型数据操作函数的方法
2018/04/08 Python
django初始化数据库的实例
2018/05/27 Python
Python简易版停车管理系统
2019/08/12 Python
python如果快速判断数字奇数偶数
2019/11/13 Python
英国最大的电脑零售连锁店集团:PC World
2016/10/10 全球购物
医生实习工作总结的自我评价
2013/09/27 职场文书
办公室助理岗位职责
2013/12/25 职场文书
我的求职计划书
2014/01/10 职场文书
大学生毕业自我鉴定范文
2014/02/03 职场文书
计算机专业职业规划
2014/02/28 职场文书
银行求职信范文
2014/05/26 职场文书
小学生迎国庆演讲稿
2014/09/05 职场文书
党员民主生活会整改措施
2014/09/26 职场文书
深入理解以DEBUG方式线程的底层运行原理
2021/06/21 Java/Android
《王国之心》迎来了发售的20周年, 野村哲发布贺图
2022/04/11 其他游戏
微软官方消息,在 2023 年 4 月 11 日之后微软将不再为 Office 2013 和 Skype for Business 2015 提供安全更新
2022/04/21 数码科技