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显示天气预报
Mar 02 Python
在python的WEB框架Flask中使用多个配置文件的解决方法
Apr 18 Python
python中split方法用法分析
Apr 17 Python
在Debian下配置Python+Django+Nginx+uWSGI+MySQL的教程
Apr 25 Python
详解python中xlrd包的安装与处理Excel表格
Dec 16 Python
详解python 拆包可迭代数据如tuple, list
Dec 29 Python
Python爬虫的两套解析方法和四种爬虫实现过程
Jul 20 Python
Django model反向关联名称的方法
Dec 15 Python
python pexpect ssh 远程登录服务器的方法
Feb 14 Python
Django外键(ForeignKey)操作以及related_name的作用详解
Jul 29 Python
Numpy 理解ndarray对象的示例代码
Apr 03 Python
Python中的min及返回最小值索引的操作
May 10 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的源码中深入了解stdClass类
2014/04/18 PHP
php过滤所有的空白字符(空格、全角空格、换行等)
2015/10/27 PHP
php大小写转换函数(strtolower、strtoupper)用法介绍
2017/11/17 PHP
PHP正则判断一个变量是否为正整数的方法
2019/02/27 PHP
phpcmsv9.0任意文件上传漏洞解析
2020/10/20 PHP
文本加密解密
2006/06/23 Javascript
window.onload追加函数使用示例
2014/03/03 Javascript
js动态拼接正则表达式的两种方法
2014/03/04 Javascript
javascript写的一个模拟阅读小说的程序
2014/04/04 Javascript
js获取鼠标点击的位置实现思路及代码
2014/05/09 Javascript
javascript从作用域链谈闭包
2020/07/29 Javascript
JavaScript类型系统之Object详解
2016/01/07 Javascript
原生JS查找元素的方法(推荐)
2016/11/22 Javascript
关于Node.js的events.EventEmitter用法介绍
2017/04/01 Javascript
详解easyui 切换主题皮肤
2019/04/04 Javascript
详解babel升级到7.X采坑总结
2019/05/12 Javascript
Python装饰器使用示例及实际应用例子
2015/03/06 Python
Python实现抓取城市的PM2.5浓度和排名
2015/03/19 Python
Python编程实现双击更新所有已安装python模块的方法
2017/06/05 Python
Python+OpenCV目标跟踪实现基本的运动检测
2018/07/10 Python
Python小工具之消耗系统指定大小内存的方法
2018/12/03 Python
PyQt QCombobox设置行高的方法
2019/06/20 Python
django框架面向对象ORM模型继承用法实例分析
2019/07/29 Python
德国网上药房:Apotal
2017/04/04 全球购物
Dillard’s百货官网:Dillards.com
2018/05/26 全球购物
二年级评语大全
2014/04/23 职场文书
电台编导求职信
2014/05/06 职场文书
应急管理培训方案
2014/06/12 职场文书
党的群众路线教育实践活动制度建设计划方案
2014/10/31 职场文书
2014流动人口计划生育工作总结
2014/12/20 职场文书
二年级上册数学教学计划
2015/01/20 职场文书
给老婆的保证书怎么写
2015/05/08 职场文书
远程教育集中轮训基层干部培训班学习心得体会
2016/01/09 职场文书
Redis6.0搭建集群Redis-cluster的方法
2021/05/08 Redis
Golang连接并操作MySQL
2022/04/14 MySQL
PYTHON InceptionV3模型的复现详解
2022/05/06 Python