Stránka 1 z 1

Jak smazat logo z obrázku

Odeslat příspěvekNapsal: 14. 8. 2022 09:36
od ivitek
Mám dva stejné obrázky, na obou je logo, ale na každém obrázku je v jiném místě obrázku.
Existuje software, do kterého bych načetl ten pár obrázků, označil obě loga a on by vytvořil obrázek bez loga?
Není potřeba žádná sofistikovanost, jen prostě data pro část fotky, kterou označím jako logo zkopírovat z 2. obrázku.
Co jsem našel na Googlu většinou počítá jen s 1 fotkou a snaží se nějak "domyslet" chybějící data po smazání loga...
Za odpovědi předem děkuji

Re: Jak smazat logo z obrázku

Odeslat příspěvekNapsal: 14. 8. 2022 09:52
od milsimr
Na tohle stačí i základní Malování, když si s tím člověk dá trošku práce.

Re: Jak smazat logo z obrázku

Odeslat příspěvekNapsal: 14. 8. 2022 10:02
od ivitek
Právě, nechci si s tím dávat práci, ale nějak to víc automatizovat...

Re: Jak smazat logo z obrázku

Odeslat příspěvekNapsal: 14. 8. 2022 10:14
od milsimr
Pokud fakt hledáš SW typu "Spustit, nahrát dva soubory a voila" tak to máš smůlu.

Re: Jak smazat logo z obrázku

Odeslat příspěvekNapsal: 14. 8. 2022 12:03
od ivitek
To logo je vlastně jen nápis bílou barvou, tak jsem to nakonec vyřešil šalamounsky v Pythonu
(tam kde se barva pixelu mezi obrázky neshoduje, použij tu, která není bílá (RGB [255,255,255]) ;-))
A to už se pro tento typ loga automatizovat dá... (nebo si hrát s rozsahy [w, h] obrázku kde se má co nahrazovat)

Kód: Vybrat vše
# -*- coding: utf-8 -*-

from PIL import Image

first_image = Image.open('1.jpg', 'r')
second_image = Image.open('2.jpg', 'r')
fw, fh = first_image.size
first_pix = first_image.load()
second_pix = second_image.load()

for w in range(fw):
    for h in range(fh):
        if first_pix[w,h] != second_pix[w,h]:   # [255,255,255] vs. [132,4,12]
            if sum(first_pix[w,h]) > sum(second_pix[w,h]):
                first_pix[w,h] = second_pix[w,h]  # přepíše barvu v daném pixelu

first_image.save('1-NEW.jpg', "JPEG")