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()
(资源库 www.zyku.net)
原文链接:https://blog.csdn.net/phker/article/details/115483369
您可能感兴趣的文章
- 04-08python3使用diagrams绘制架构图的步骤
- 04-08python3 删除所有自定义变量的操作
- 03-31用python插入独创性声明
- 03-29正确的使用Python临时文件
- 03-28Python 执行函数的九种方法
- 03-27Python中如何实现链式调用
- 03-27Python API 邮件发送测试
- 03-27Python命令行如何运行文件
- 03-27Python 实现单向链表,和单向链表的反转
- 03-16CSS鼠标点击出现有颜色的边框?如何解决
- 02-20Dreamweaver生成新页面css的类失效
- 04-21vivos9桌面字体样式更换方法
- 04-14小米11青春版开启防抖功能方法
- 11-23小米音箱无法连接wifi怎么办
- 01-11LOOX相机拍摄-LOOX相机拍摄应用软件功
- 11-23ipad小白点在哪开启
- 01-11暴雪快捷连wifi-暴雪快捷连wifi应用软
- 01-11犀牛语音-犀牛语音应用软件功能介绍
- 01-12随身网吧-随身网吧应用软件功能介绍
- 10-242021淘宝天猫京东双11时间及满减规则
最近更新
阅读排行
猜你喜欢
- 11-24ipad如何关闭app自动更新
- 05-07opporeno5pro设置屏幕刷新率方法
- 12-27Windows Server 2008服务器修改远程桌
- 01-08PPT免费模板-PPT免费模板应用软件功能
- 01-14搜优SEO-搜优SEO应用软件功能介绍
- 11-21红米note10pro如何关闭高清通话
- 01-12SOVS相机-SOVS相机应用软件功能介绍
- 01-11临泉论坛-临泉论坛应用软件功能介绍
- 02-19一加9r振动强弱设置教程
- 12-28便捷word文档制作-便捷word文档制作应