Třeba se to někomu bude hodit. V současných vedrech jsem dostal bláznivý nápad se “naučit” zda by pomocí Pythonu nedalo automatizovat vylepšení fotek, které by to přece jen trochu potřebovaly. Takové základní, určitě nic jako různé pokročilé AI techniky či filtry ve Photoshopu (a tomu podobném). A na kliknutí, tedy tak abych to mohl vyvolat z XnView MP.
Využil jsem to rovnou i k experimentování s Code interpreter v ChatGPT. Umí totiž fascinující věc – nahrajete tam fotku a řeknete slovně co s ní chcete udělat, můžete zkoušet i různé iterace, variace. Ale co hlavně, Code Interpreter to na pozadí dělá (a to jako že fakt) v Pythonu a ten kód vám poskytne.
Můžete si ten kód i nechat upravit. Třeba aby obrázek nebyl jménem přímo v skriptu, ale bral se jako parametr při spuštění z příkazové řádky.
ChatGPT mi nakonec poskytla tento kód:
import sys
from PIL import Image, ImageEnhance, ImageFilter
def enhance_image(input_image_path, output_image_path):
# Open the image file
img = Image.open(input_image_path)
# Increase contrast (increase by 20%)
contrast_enhancer = ImageEnhance.Contrast(img)
enhanced_img = contrast_enhancer.enhance(1.2)
# Increase saturation (increase by 30%)
color_enhancer = ImageEnhance.Color(enhanced_img)
enhanced_img = color_enhancer.enhance(1.3)
# Apply a detail enhancement filter
enhanced_img = enhanced_img.filter(ImageFilter.DETAIL)
# Save the enhanced image to a file
enhanced_img.save(output_image_path)
if __name__ == "__main__":
# Use the function to enhance an image
input_image_path = sys.argv[1] # First command line argument is input image path
output_image_path = "enhanced_" + input_image_path # Output image path
enhance_image(input_image_path, output_image_path)
Funguje to docela hezky, ale chtěl jsem něco víc, takže jsem si s ChatGPT ještě chvíli povídal a navedla mě na něco pokročilejšího. Díky čemuž jsem nakonec našel na MakeUseOf skript co umí pár dalších vylepšení navíc (a používá jinou knihovnu, OpenCV). Skript co jsem našel jsem očesal o pár zbytečností a nakonec vypadá takto:
import cv2
import os
# import matplotlib.pyplot as plt
import numpy as np
import sys
def enhance_image(input_image_path, output_image_path):
# Load the image
image = cv2.imread(input_image_path)
# Denoise the image
denoised_image = cv2.fastNlMeansDenoisingColored(image, None, 10, 10, 7, 21)
# Contrast Stretching
contrast_stretched_image = cv2.normalize(denoised_image, None, 255, 0, cv2.NORM_MINMAX, cv2.CV_8UC1)
# Image Sharpening
kernel = np.array([[0, -1, 0], [-1, 5, -1], [0, -1, 0]], np.float32)
sharpened_image = cv2.filter2D(contrast_stretched_image, -1, kernel=kernel)
# Brightness Adjustment
brightness_image = cv2.convertScaleAbs(sharpened_image, alpha=1, beta=5)
# Gamma Correction
gamma = 1.5
lookup_table = np.array([((i / 255.0) ** gamma) * 255 for i in np.arange(0, 256)]).astype("uint8")
gamma_corrected_image = cv2.LUT(brightness_image, lookup_table)
# Save final image
cv2.imwrite(output_image_path, gamma_corrected_image)
if __name__ == "__main__":
# Use the function to enhance an image
input_image_path = sys.argv[1] # First command line argument is input image path
dir_name = os.path.dirname(input_image_path)
base_name = os.path.basename(input_image_path)
file_name, file_extension = os.path.splitext(base_name)
# Construct the output image path
output_image_path = os.path.join(dir_name, "enhanced_" + file_name + file_extension)
enhance_image(input_image_path, output_image_path)
Zajímavé je i to, že mi nakonec pomohla i vyřešit to, že do cmd/bat spouštějícího python s tímto skriptem je vstupem kompletní cesta i se jménem obrázku, na což první varianta skriptu nemyslí – stačilo se prostě AI zeptat jak to udělat a poradilo využít os knihovnu a dodala kód, který vlastně vidíte na konci pokročilejšího skriptu.
V XnView MP pak už jen stačilo do lišty přidat cmd tlačítko co volá cmd/bat soubor, který spouští python s výše uvedeným skriptem a předá parametr (%1), tedy cestu+název souboru (což tam dává XnViewMP).
Stačí zvolit fotku, kliknout v liště, chvíli počkat a ve stejné složce se objeví vylepšený soubor co začíná “enhanced_”.




Jen dodám, že výše popsané vyžaduje abyste v počítači měli Python, což je ale snadné. A také abyste si pomocí “pip” přidali knihovny (asi bych měl spíš psát baličky/packages), které jsou ve skriptu použité. Ale to je také snadné. Třeba ono OpenCV se prostě přidá jako “pip opencv-python”. Já už spoustu věcí mám, Stable Diffusion používá Python, například. A nějaké další skripty v Pythonu už také chvíli používám.
PS: Pokud byste chtěli vidět záznam ChatGPT tak zde. Jen tam nebudou vidět ani nahrané soubory, ani výsledky skriptů. To Code Interpreter neumí. Ale pro ilustraci dialogu se vám to třeba bude hodit.
PS: HEIC to neumí, ale s pillow-heif či pyheif by mohlo, tak možná v další iteraci
Další tipy týkající se ChatGPT
-
DALL-E 3 v ChatGPT: Jak použít pro ilustrační obrázky k článkům (7)
DALL E 3 v ChatGPT funguje tak, že nezadáváte klasický prompt, podle kterého se přesně tvoří výsledek. Zadání je pokyn pro ChatGPT aby “vymyslela” prompt (prompty) a následně vytvořila obrázek (obrázky). Související…
-
DALL-E 3 v ChatGPT: Jak přimět k tomu, aby udělal přesně to co řeknete v promptu (aby ho nepřepsal)? (6)
Výhoda Dall E 3 v chatGPT je, že prostě popisujete co chcete a ChatGPT z toho vyrobí prompt. Jenže to může být někdy i nevýhoda. Přepsané může nakonec vést k něčemu jinému,…
-
DALL-E 3 v ChatGPT: Příklady zadání (prompts). Co můžete tvořit (5)
Níže jsou různorodé příklady zadání pro konkrétní účely. Jsou záměrně krátké, je na vás abyste si je patřičně rozšířili – nezapomeňte, že Dall E 3 negeneruje věci přesně podle promptu, ten vás…
-
DALL E 3 v ChatGPT: Techniky malby a umělecké styly (4)
Dall E 3 velmi striktně odmítá aby tvořila obrázky ve stylu umělců chráněných autorským právem (hranici v tom má sto let od smrti), ale můžete si, podobně jako jinde, říkat o umělecké…
-
DALL-E 3 v ChatGPT: Jak na Prompt/Zadání (3)
V půlce října do ChatGPT dorazila DALL-E-3, tedy generativní AI. Ta co je už pár týdnů v Bing Create. Musíte mít ale placenou ChatGPT a v menu GPT-4 aktivovat, že chcete generovat…
-
DALL-E 3 v ChatGPT: Počty a formát obrázků. Rate limits (omezení) (2)
Jdeme na další tipy a triky pro DALL E 3 v ChatGPT, v tomto díle ale věci, které neplatí pro variantu v Bing Create. Související příspěvky TIP#3138: Vše o generování obrázků v…
-
DALL-E 3 v ChatGPT: Jak používat. Základy, blacklist a pravidla (a jak je „obcházet“) (1)
V půlce října do ChatGPT dorazila DALL-E-3, tedy generativní obrázková AI. Ta co je už pár týdnů v Bing Create. Související příspěvky TIP#3138: Vše o generování obrázků v ChatGPT (GPT Image). Jak to…
-
TIP#2526: Dá se ChatGPT/Bard použít pro doplnění nabodeníček (diakritiky)? Co jiného použít?
Dá 🙂 Ale … bude tu platit to, co bylo už řečeno v tipu (co časem také dorazí) řešícím zda je použitelná pro překlady stejně dobře jako (například) DeepL. Související příspěvky TIP#2557:…
-
TIP#2520: ChatGPT nově umí komunikovat hlasem. Vy mluvíte, ona také. Jak to zapnout? A tipy jak používat
Na konci září Open.AI oznámilo “multimodální” ChatGPT. Dvě novinky – první ta, že můžete nahrávat obrázek (i více obrázků) a umělí inteligence je bude zkoumat a analyzovat. Má to nějaká omezení, jako…
-
TIP#2515: Jak vlastně aktuálně využívám ChatGPT pro psaní tipů a článků?
Možná je dobré napsat, jakým způsobem se ChatGPT “podílí” na obsahu pro 365tipů. Je to totiž nakonec funkční model, jak využívat ChatGPT pro psaní textů. Ne nutně ten správný či jediný, ale…
-
TIP#2502: Jak je možné OpenAI/Bard říci, že nesmí přistupovat k vašemu obsahu pro zahrnutí do ChatGPT/Bardu. A proč to je to ničemu
Je to teď tak trochu módní “zakazovat” ChatGPT přístup k obsahu, aby ho nemohla použít. Udělat to jde poměrně snadno, protože OpenAI respektuje zákaz indexování v robots.txt. Související příspěvky TIP2567: Co je…
-
TIP#2496: Umí ChatGPT či Bard vytvářet prezentace v PowerPointu, Google Sheets či PDF?
Tady je odpověď jednoduchá, žádná z konverzačních umělých inteligencí, tedy ChatGPT, Bard ani Bing Chat neumí přímo vytvořit prezentace v PowerPointu, Google Sheets či PDF. Související příspěvky TIP#2621: ChatGPT? Google Bard/Gemini? Microsoft…
-
TIP#2493: Jak pracovat s Custom Instructions v ChatGPT4? Příklady, které můžete použít i v běžných zadáních
Custom Instructions (Vlastní instrukce) je nová funkčnost v ChatGPT 4, tedy v placené verzi. Čerstvě zpřístupněna i pro EU, kam se provozovateli nechtělo funkčnost pustit, protože hrozí ukládání osobních či jinak důvěrných…
-
TIP#2489: Jak využít ChatGPT 4 pro konverzi XML do Google Tabulky?
ChatGPT4 má nesmírně užitečnou věc jménem Code Interpreter. Dá se využít na množství věcí, takže je vhodné se s tím naučit zacházet. Jeden takový vcelku základní příklad je konverze XML do Google…

















