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
-
TIP#3055: Jak na ChatGPT API sloučit překlad a souhrn článku na jednu klávesovou zkratku pomoci Python skriptu
Tip ve kterém vůbec nepůjde o ChatGPT API ale o to, že dva hotové skripty (co volají právě to API) lze pomocí jednoho “router” skriptu schovat pod jednu klávesovou zkratku. Související příspěvky…
-
TIP#3053: „Platnost relace interpreta kódu skončila “ co je to za chybu od ChatGPT? Objeví se, když chci stáhnout nějaké soubory ze staršího chatu
Ta hláška „Platnost relace interpreta kódu skončila“ znamená, že v daném chatu už expirovala (skončila) běžící instance Pythonového prostředí, které ChatGPT používá k práci se soubory nebo kódem. Související příspěvky TIP#3168: Jak…
-
TIP#3050: Chcete aby AI dokázala pracovat s (například) celou knihou? Dávejte jí strojově čitelná data. Rozhodně ne PDF
Pár posledních týdnů pomáhám s vydáním knížky o AI (od Lukáše Sedláčka) a mimo to, že už ji mám skoro přečtenou (skvělé čtení), tak jsme potřebovali z knihy dostat i různé “výkřiky”.…
-
TIP#3047: Časté chyby při práci s ChatGPT a LLM vůbec
Potkávám to často. U klientů, na školeních, ale i na sociálních sítích. Lidé si stěžují, že jim AI “nefunguje” nebo “nedělá co chtějí”. Většinou je to prosté. Chybu dělají oni, protože neví,…
-
TIP#3046: Jak na ChatGPT (ale i jiné AI) přímo přes API? V čem je to jiné od webu/aplikace? Co to API vůbec znamená?
API je zkratka pro Application Programming Interface, cestu (rozhraní) jak z nějaké aplikace přistupovat do jiné aplikace či služby. Přes API můžete ChatGPT požádat o cokoliv, prostě ji “odešlete” prompt (zadání) a…
-
TIP#3037: Jak pracovat s umělou inteligencí (ChatGPT a další) s ohledem na ochranu soukromí?
Média informovala o lidech šokovaných tím, že se jejich soukromé chaty s AI objevily ve vyhledávání Google. ChatGPT (nejen) umožňuje sdílet chat prostřednictvím odkazu, který může kdokoliv použít k zobrazení konverzace. Jakmile…
-
TIP#3032: Vše co byste mohli (či měli) chtít vědět o GPT 5 (a je toho hodně)
8. srpna 2025 přišlo Open AI s evolucí, novým GPT 5 modelem. Měl by být rychlejší, levnější a přehlednější pro uživatele. Spojuje dřívější hledání, klasický chatbot i hloubkový výzkum. První dojmy jsou,…
-
TIP#3025: Proč oddělit pracovní a soukromou AI
Nemíchat pracovní a soukromé (nejen) e-maily je zásada, kterou většina z nás zná a dodržuje. Ale co když používáte jednu AI na všechno – pracovní analýzy, texty, data i soukromé záležitosti? Související…
-
TIP#3017: Jaký je rozdíl v “zeptat se AI” a “použít Deep Research” (hloubkový výzkum), pokročilou argumentací (advanced reasoning) a GPT Search?
Narážím na to opakovaně, tedy na to, že lidé nevědí, že je zásadní rozdíl si jen tak povídat s AI (chatovat) a nechat AI provést hloubkový výzkum. Tak si to pojďme trochu…
-
TIP#2964: Jak na Mac OS (a nejen tam) mít lokálně LLM (AI). DeepSeek, Llama a další?
Chcete mít vlastní umělou inteligenci, která nepotřebuje přístup k Internetu a ani nic nikam neposílá a nevykecává? Je to vlastně docela snadné, prostě si budete LLM co to umožňují spouštět přímo v…
-
TIP#2941: ChatGPT má nový generátor fotek a obrázků (4o Image Generation). Je hodně jiný než DALL E 3. Jak na něj?
OpenAI pustila poslední týden v březnu 2025 do světa nový 4o generátor obrázků a fotografií. Je součástí 4o modelu a je zcela, ale opravdu zcela jiný než předchozí DALL E 3. Přístupný…
-
TIP#2892: Jak na iPhone vyvolat ChatGPT přímo hlasem (tedy jako když oslovíte Siri)
Chcete žít tak trochu blíže budoucnosti a na iPhone hlasem vyvolat ChatGPT v “voice” režimu a začít si s ní povídat? Není to nijak složité, ale nemůžete na to jít přes Apple…
-
TIP#2891: ChatGPT Tasks (Úkoly) a k čemu je to dobré?
ChatGPT doplnila beta verzi Tasks, kde můžete ChatGPT požádat, aby v určitý čas (jednorázově nebo opakovaně) spustila vám stanovený dotaz a poslala vám výsledek. Související příspěvky TIP#3212: Jak využít ChatGPT pro kontrolu…
-
TIP#2860: Jak na MacOS přidat stín k obrázkům (pokračování řešení pro Windows)
Před mnoha měsíci jsem využil ChatGPT k vytvoření .cmd skriptu pro Windows, který k obrázku přidá stín pomocí imagemagick. Ušetřil mi záplavu času, protože to používám prakticky neustále pro sociální sítě i…

















