pythonは純粋な色彩の画像を求める境界を実現します。


本論文の例では、pythonの純粋な色彩画像を求めるフレームワークを共有しました。参考にしてください。具体的な内容は以下の通りです。
先に効果図を示して、ここで少し色収差があって、実際の数値は純色で、混合色のではありません。

局部の細部を拡大して見るとこのようになります。

原図は次のようなものです。

このアルゴリズムの最大の特徴は、フレームを白に統一するのではなく、元のピクセルの値を保持することです。
実現したアルゴリズムも超簡単です。ちょっと遅いです。私のこの応用シーンは性能要求が高くなくて、人より速くてもいいです。人工はその何百倍です。だから大丈夫です。
テスト結果は1080*1920の図1枚で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()
以上が本文の全部です。皆さんの勉強に役に立つように、私たちを応援してください。