主页 > 知识库 > python实现求纯色彩图像的边框

python实现求纯色彩图像的边框

热门标签:电话机器人贷款诈骗 佛山通用400电话申请 电话外呼系统招商代理 京华图书馆地图标注 打印谷歌地图标注 淮安呼叫中心外呼系统如何 苏州人工外呼系统软件 广东旅游地图标注 看懂地图标注方法

本文实例为大家分享了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 基于opencv实现图像增强
  • 用Python给图像算法做个简单应用界面
  • python+opencv图像分割实现分割不规则ROI区域方法汇总
  • python-opencv实现视频指定帧数间隔图像的保存功能
  • Python深度学习之图像标签标注软件labelme详解
  • python使用matplotlib显示图像失真的解决方案
  • python调用stitcher类自动实现多个图像拼接融合功能
  • python数字图像处理之估计噪声参数
  • Python深度学习之使用Albumentations对图像做增强

标签:湖州 驻马店 毕节 衡水 江苏 股票 中山 呼和浩特

巨人网络通讯声明:本文标题《python实现求纯色彩图像的边框》,本文关键词  python,实现,求纯,色彩,图像,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《python实现求纯色彩图像的边框》相关的同类信息!
  • 本页收集关于python实现求纯色彩图像的边框的相关信息资讯供网民参考!
  • 推荐文章