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统计文件行数示例分享
Feb 21 Python
python开发之字符串string操作方法实例详解
Nov 12 Python
python 回调函数和回调方法的实现分析
Mar 23 Python
python魔法方法-自定义序列详解
Jul 21 Python
Python学习_几种存取xls/xlsx文件的方法总结
May 03 Python
使用python进行波形及频谱绘制的方法
Jun 17 Python
python字符串Intern机制详解
Jul 01 Python
python3 批量获取对应端口服务的实例
Jul 25 Python
Python tkinter实现简单加法计算器代码实例
May 13 Python
python def 定义函数,调用函数方式
Jun 02 Python
浅谈sklearn中predict与predict_proba区别
Jun 28 Python
python 日志模块logging的使用场景及示例
Jan 04 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
安装ImageMagick出现error while loading shared libraries的解决方法
2014/09/23 PHP
跟我学Laravel之配置Laravel
2014/10/15 PHP
PHP SOCKET编程详解
2015/05/22 PHP
PHP基于反射机制实现插件的可插拔设计详解
2016/11/10 PHP
关于Blog顶部的滚动导航条代码
2006/09/25 Javascript
JavaScript 数组运用实现代码
2010/04/13 Javascript
JavaScript 面向对象编程(2) 定义类
2010/05/18 Javascript
js去除重复字符串两种实现方法
2013/01/09 Javascript
createTextRange()的使用示例含文本框选中部分文字内容
2014/02/24 Javascript
javascript中2个感叹号的用法实例详解
2014/09/04 Javascript
原生javascript实现图片弹窗交互效果
2015/01/12 Javascript
JavaScritp添加url参数并将参数加入到url中及更改url参数的方法
2015/10/26 Javascript
js+html5实现canvas绘制椭圆形图案的方法
2016/05/21 Javascript
JS实现图片局部放大或缩小的方法
2016/08/20 Javascript
AngularJS中filter的使用实例详解
2017/08/25 Javascript
webpack中使用iconfont字体图标的方法
2018/02/22 Javascript
node实现的爬虫功能示例
2018/05/04 Javascript
关于AngularJS中ng-repeat不更新视图的解决方法
2018/09/30 Javascript
react中使用css的7中方式(最全总结)
2019/02/11 Javascript
这15个Vue指令,让你的项目开发爽到爆
2019/10/11 Javascript
Vue中多元素过渡特效的解决方案
2020/02/05 Javascript
python自动化测试之连接几组测试包实例
2014/09/28 Python
详解Python在七牛云平台的应用(一)
2017/12/05 Python
python实现微信小程序用户登录、模板推送
2019/08/28 Python
Python趣味入门教程之循环语句while
2020/08/26 Python
Styleonme中文网:韩国高档人气品牌
2017/06/21 全球购物
将n个数按输入顺序的逆序排列,用函数实现
2012/11/14 面试题
数控技术专业推荐信
2013/11/01 职场文书
《石榴》教学反思
2014/03/02 职场文书
《悯农》教学反思
2014/04/28 职场文书
个人催款函范文
2015/06/23 职场文书
2019年年中职场激励人心语录30条
2019/08/07 职场文书
聊聊Python String型列表求最值的问题
2022/01/18 Python
Python Pytorch查询图像的特征从集合或数据库中查找图像
2022/04/09 Python
苹果可能正在打击不进行更新的 App
2022/04/24 数码科技
nginx配置指令之server_name的具体使用
2022/08/14 Servers