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#2465: Python jako nástroj pro rychlé vylepšení fotografií? A jak pomůže ChatGPT
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í,…
-
TIP#2461: Jak využít ChatGPT pro generování zadání (prompts) pro Stable Diffusion. Pokročilé naučení ChatGPT
V Jak využít ChatGPT pro generování zadání (prompts) pro Stable Diffusion, Midjourney a další? jsem slíbil pokračování, takže tady ho máte. Připomenu, že ChatGPT nemá o generativních obrázkových AI ponětí, v době…
-
TIP#2451: Jak využít ChatGPT pro generování zadání (prompts) pro Stable Diffusion, Midjourney a další?
ChatGPT můžete využít pro vytváření zadání (promptů) pro generativní obrázkové AI jako je Stable Diffusion, Dall-E (Bing Create), Mid Journey a další. Ale má to drobné zádrhele, dané hlavně tím, že ChatGPT…
-
TIP#2447: Rozšíření pro (zejména) Chrome pro ChatGPT? Pár šikovných věcí se najde
ChatGPT se vcelku dobře používá aniž byste si pořizovali cokoliv dalšího, ale přeci jen některé věci se hodit mohou. Pozor jen, až si budete nějaká rozšíření pořizovat, tak nic co by po vás…
-
TIP#2444: Placená ChatGPT? Co umí a jak s ní zacházet? Proč si ji pořídit?
ChatGPT můžete používat zdarma. stačí jít na ai.com a po založení si účtu můžete používat konverzační umělou inteligenci s pár omezeními. Bud pomalejší, bude méně spolehlivá (občas “spadne”, občas bude nedostupná). Nemá…
-
TIP#2442: Pluginy v ChatGPT? Tipy na ty nejzajímavější a jak s pluginy pracovat
V placené ChatGPT (20 USD měsíčně) můžete mít nejenom přístup k Internetu, ale také pluginy, tedy rozšiřující “aplikace” s různorodou funkčnosti. Související příspěvky TIP#3212: Jak využít ChatGPT pro kontrolu pravopisu? Jde to.…
-
TIP#2396: Jak je to u ChatGPT a dalších podobných s bezpečností a soukromím?
ChatGPT je konverzační umělá inteligence a pokládáte ji otázky, sdělujete ji nějaké informace. Znamená to i to, že může dojít k tomu, že ji budete sdělovat soukromé informace, osobní údaje, ale v…
-
TIP#2391: Co je to AGI (Artificial General Intelligence, obecná umělá inteligence)? Jak ji poznáme?
Artificial General Intelligence (AGI, Obecná umělá inteligence) je pojem používaný k popisu teoretické formy umělé inteligence, která by měla schopnosti obdobné lidem, tj. Související příspěvky TIP#3212: Jak využít ChatGPT pro kontrolu pravopisu?…
-
TIP#2386: Jak využít ChatGPT pro psaní celých či částečných článků (včetně AI verze)
Nebudu nic zastírat. Poslední víkend v březnu jsem doháněl resty v psaní tipů pro 365tipů po týdenní skluzu zaviněném #moribundus stavem. Zároveň se připravoval na nějaké školení, které se bude týkat toho,…
-
TIP#2364: Jak stáhnout ChatGPT? Jak mohu používat #chatgpt #ai? Kolik to stojí?
Protože se množí pokusy tvůrců malware a virů o využití ChatGPT, je možná vhodné napsat tip, který jsem vlastně vůbec neměl v plánu psát. Tedy tip co prostě ukáže kde si můžete…
-
TIP#2359: Můžete použít #AI (#ChatGPT) pro psaní článků? Jak zadávat AI co má dělat? Dvojitý tip
Prozradím hned, že ano, můžete, byť to bude mít pár specifik a zádrhelů. A budou články, kde výsledek bude dobrý, ale také články kde to dopadne špatně. Předem to nebudete moci vědět,…
-
TIP#2326: Poradí mi AI jaké další tipy mám psát pro 365tipů? Využití #ChatGPT pro návrh témat
Naučte se používat umělou inteligenci pro navrhování témat článků, příspěvků, textů na sociální sítě. ChatGPT (chat.openai.com) to umí dost dobře, včetně zohlednění různorodých aspektů. Navíc umí i pracovat (tak trochu) s klíčovými…















