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#2850: Jak pracovat s ChatGPT rozhraním? Základy
Překvapivě často narážím na to, že lidé nevědí jak ChatGPT funguje a jak pracovat s rozhraním, ať už webovým nebo mobilním (je prakticky shodné). Netuší ani základy, takže těmi začneme. A přidám…
-
TIP#2837: Jak funguje ChatGPT search. Základy i pokročile tipy. A proč to není náhrada klasického vyhledávače
ChatGPT má od konce října 2024 novou funkci ChatGPT search. Pokročilejší schopnost integrující vyhledávací nástroje (stále ale Bing) i další zdroje (včetně médií) pro získání aktuálních informací. Včetně velmi dobrého zdrojování. Prozatím…
-
TIP#2834: Advanced Voice Mode na ChatGPT. V čem je jiný než předchozí podoba a k čemu je to dobré?
Do ChatGPT v Evropě dorazilo Advanced Voice Mode. Doposud ho OpenAI klasicky blokovala, protože se dohadovala s EU o dalších podivnostech a šlo to jedině přes VPN. Od 24. října je ale…
-
TIP#2825: Jak funguje paměť (memory) v ChatGPT? Jak zjistit co se o vás naučila?
Od jisté doby má ChatGPT paměť (Memory). Do ní si ukládá věci, které zjistila při vaši konverzaci. Paměť můžete potlačit (v rámci chatu) a můžete se i podívat, co se o vás…
-
TIP#2817: Jak používat dočasný (temporary) chat v ChatGPT a k čemu slouží
ChatGPT je postavená na tom, že můžete vytvářet další a další chaty a poté se k nim případně i kdykoliv vracet a pokračovat v konverzaci. Osobně jich tam mám určitě přes tisícovku…
-
TIP#2808: Jak využít ChatGPT pro návrh témat pro váš web/blog, která ještě nemáte zpracovaná
ChatGPT funguje docela dobře pro navrhování článků na určité téma. Už jsem to probíral v Poradí mi AI jaké další tipy mám psát pro 365tipů? Využití #ChatGPT pro návrh témat v trochu…
-
TIP#2806: Využijte novou “uvažující” ChatGPT o1 pro detailnější zadání pro DALL E 3
OpenAI na počátku září uvedla ChatGPT o1 (v preview podobě) se schopností uvažovat. A je docela zajímavé ji zkusit využit pro lepší návrhy zadání (promptu) pro DALL E 3 v klasické GPT…
-
TIP#2802: Co je to HAARP? A proč si někteří lidé myslí, že slouží USA k manipulaci počasí?
Je to teď aktuální. dezoláti na sociálních sítích tvrdí, že za současné počasí a povodně mohou USA a jakýsi HAARP. Tak jsem se šel zeptat ChatGPT a výjimečně to nedám na JustIT.cz.…
-
TIP#2761: Co umí (neumí) ChatGPT-4o mini vs. plná ChatGPT-4o
V červenci 2024 Open AI vypustili do světa ChatGPT-4o mini. Je tedy dobré vědět co neumí oproti plné a komplexnější ChatGPT-4o. Následjící tabulky pochází přímo od ChatGPT 4o mini. Související příspěvky TIP2567:…
-
TIP#2710: Co všechno je/není možné dělat v neplacené Chat GPT (GPT-4o)?
OpenAI v dubnu 2024 uvolnilo GPT-4o, pokročilejší verzi GPT4, ale hlavně verzi ve které se otevřela řada schopností, které doposud byly pouze v placené GPT Plus. Související příspěvky TIP#3212: Jak využít ChatGPT…
-
TIP#2624: Další šetření času s Image Magick. Vytvoření stínu okolo/pod obrázkem
Dělal jsem to chvíli v Canva, ale je to trochu opruz. Otevřít Canva, nahrát obrázek, vyvolat menu, editace, efekty, stín, stáhnout obrázek. Pak jsem se šel ChatGPT zeptat, jestli nejde Canva nějak…
-
TIP#2621: ChatGPT? Google Bard/Gemini? Microsoft Bing/Copilot? Co vybrat?
Tohle je těžké. Máme tu v zásadě tři hlavní linie generativních umělých inteligencí. ChatGPT od OpenAI, Gemini (dříve Bard) od Google a Copilot (dříve Bing) od Microsoftu. Ta poslední je navíc postavená…
-
TIP#2619: Jak velké množství souborů třídit do složek podle roku a měsíce? A jak v tom pomůže ChatGPT?
Mám v počítači dvě složky, kde každý měsíc přibude spousta souborů a je velmi vhodné ty starší odsouvat někam do archivu, aby ta složka zůstala použitelná. Dlouho jsem to dělal ručně. Prostě…
-
TIP#2577: Jaké jsou nejvíce rozšířené AI mýty?
Další přírůstek do série “Mýty” se týká AI, věci co je aktuálně hodně v kurzu a také tomu odpovídá řada mýtů s tím spojených. Související příspěvky TIP#2396: Jak je to u ChatGPT…
-
TIP2567: Co je to OSINT a pomůže při téhle činnosti AI?
Občas na tuhle zkratku narážím, takže je možná dobré ji přidat k vysvětleným cizím slovíčkům. OSINT je vlastně tak trochu zkratka a znamená „Open Source Intelligence„. Související příspěvky TIP#3037: Jak pracovat s…

















