Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - mastnacek

Stran: [1]
1
Desktop / Re:Poraďte zajímavé využití RAM disku v Linuxu
« kdy: 18. 05. 2023, 13:34:00 »
Lze vytvorit ramdisk na konretnich pametovych modulech?

2
Bazar / Re:Prodám NAS Synology DS220+ s 6 GB RAM
« kdy: 09. 03. 2023, 09:09:43 »
Cena 6500,- Kč.

3
Bazar / Prodám NAS Synology DS220+ s 6 GB RAM
« kdy: 08. 03. 2023, 08:44:08 »
Prodam NAS Synology DS220+ s 6GB ram. Bez disku. Koupeny 5.5.2022. Ram modul Kingston 4GB DDR4 2666 CL19. Duvod prodeje, potrebuju spis pracovni stanici nez NAS. Cena k jednani 7000.

4
Vývoj / Re:OpenCV a zpracování fotografií
« kdy: 24. 02. 2023, 14:03:57 »
Diky za pripominku. Je to komplexni. Jeste jsem nezkousel takove ty fotky, kde je pozadi zamerne rozostrene.

5
Vývoj / Re:OpenCV a zpracování fotografií
« kdy: 24. 02. 2023, 13:19:36 »
Zkousim k zjisteni rozmazani imagemagick, je to o hodne pomalejsi, ale vysledky vypadaji lepe

import os
import subprocess

# Cesta k složce se vstupními obrázky
input_folder = '/home/uziv/TESTY/IN'
# Cesta k výstupní složce
output_folder = '/home/uziv/TESTY/OUT'

# Nastavení prahové hodnoty pro detekci rozmazání
THRESHOLD_BLUR = 0.1

# Krok 1: Načtení obrázků a detekce rozmazání
for file_name in os.listdir(input_folder):
    # Zkontrolujeme, zda se jedná o soubor s obrázkem
    if file_name.lower().endswith(('.jpg', '.jpeg', '.png', '.bmp')):
        input_path = os.path.join(input_folder, file_name)
        output_path = os.path.join(output_folder, file_name)

        # Spuštění příkazu Identify pro zjištění velikosti obrázku
        identify_output = subprocess.check_output(['identify', '-format', '%w,%h', input_path])
        width, height = identify_output.decode().split(',')

        # Spuštění příkazu Convolve pro získání konvoluce obrázku s Gaussovým jádrem
        convolve_output = subprocess.check_output(['convert', input_path, '-colorspace', 'gray', '-define', 'convolve:scale=1.5', '-morphology', 'Convolve', 'Gaussian:0x3', '-format', '%[fx:maxima.mean]', 'info:'])
        maxima_mean = float(convolve_output.decode())

        # Vypočítání průměru a směrodatné odchylky z gradientů vodorovného a svislého směru
        sobel_output = subprocess.check_output(['convert', input_path, '-colorspace', 'gray', '-define', 'convolve:scale=1.5', '-define', 'convolve:normalize=false', '-morphology', 'Convolve', 'Sobel:0x1', '-format', '%[fx:mean],%[fx:standard_deviation]', 'info:'])
        sobel_mean, sobel_std = map(float, sobel_output.decode().split(','))

        # Pokud je hodnota maximálního průměru gradientů menší než prahová hodnota,
        # obrázek se považuje za rozmazaný a přesune se do složky
        if maxima_mean < THRESHOLD_BLUR:
            output_subfolder = os.path.join(output_folder, 'rozmazane')
        else:
            output_subfolder = os.path.join(output_folder, 'ostre')

        if not os.path.exists(output_subfolder):
            os.makedirs(output_subfolder)

        # Uložíme výsledný obrázek do příslušné složky
        output_path = os.path.join(output_subfolder, file_name)
        os.replace(input_path, output_path)

        print(f"Obrázek {file_name} byl přesunut do složky {output_subfolder}.")
    else:
        print(f"Soubor {file_name} není obrázek, přeskočen.")

6
Vývoj / Re:OpenCV a zpracování fotografií
« kdy: 23. 02. 2023, 17:04:23 »
To vsechno jde udelat, vytvori se trenovaci soubory. Jsem teprve na zacatku. treba pomoci openCV se projedou fotky, detekuji se obliceje, vyrobi se vyrezy jen s nimi... dal jsem jeste nedosel, napriklad jak urcim, ke kteremu jemu je priradit.
 

7
Vývoj / Re:OpenCV a zpracování fotografií
« kdy: 23. 02. 2023, 13:18:23 »
Mam v planu to pak nasadit na Synology nasku, hodne veci se da vyresit dockerem. Identifikace obliceju, obektu, zvirat, to vsecko lze, ale nez to dam dokupy  :) Aplikace by na to potreba ani nebyla, pokud by to melo bezet v cronu, probihalo by vse automaticky. Jsou i takove moznosti, ze se pomoci python zapise informace do metatagu fotek.

8
Vývoj / Re:OpenCV a zpracování fotografií
« kdy: 22. 02. 2023, 09:09:46 »
Diky za nakopnuti, vcera jsem si ( nebudu rikat diky komu :) ) zkousel prave i dalsi moznosti v kombinaci s detekci osob a obliceju. Ale je dobre mozne, ze se po case zase vratim k digikamu a pohraju si s nastavenim detekce v nem. Myslim ze pouziva take tyhle zpusoby. V pythonu jsem si chtel napsat par scriptu pro jakous takous automatizaci pro cleny rodiny. Dnes ma kazdy tuny fotek a jen se to hromadi i s balastem a v tom lepsim pripade si to zalohuji alespon na google fotky. Potom jsou ty rozmazane a malo kvalitni fotky problem ( objem dat ).

9
Vývoj / Re:OpenCV a zpracování fotografií
« kdy: 22. 02. 2023, 08:40:38 »
alex6bbc:  diky za popostrkavani a kritiku ai, samozrejme jsem hledal i jine zdroje ( ze kterych ai vychazi ) a nikde jsem nevidel laplacian jinak nez v sedi. Zkusim to. Vy mate konkretni zkusenosti jak si vede grey a barvy?

A k te kritice ai, mam to presne jako Wangarad ( kdyz pominu, ze jsem to objevil pred par dny ). Vidim to jako druhe oci a zjednoduseni v setreni casu s procitanim dokumentaci. Muj zivot je moc kratkej na to, abych do vseho pronikal do hloubky. To si muze dovolit nekdo kdo nema rodinu a nebo uz deticky vyletely z hnizda. Kdyz se clovek sikovne pta, tak gpt dava velice dobry vysledky. Co se me velice libi, tak jako ( i kdyz ne moc sikovnymu ) programatorovi to setri cas napr s komentovanim kodu.

10
Vývoj / Re:OpenCV a zpracování fotografií
« kdy: 21. 02. 2023, 23:40:57 »
Urcite je to individualni jak to kdo potrebuje. Me treba ted staci zbavit se totalne rozmazanych fotech.
Prevod do sedi je tam kvuli tomu laplacian vypoctu. Pridali jsme tam s chatbotem detekci ostrosti hran.

import cv2
import os

# vstupni a vystupni slozky
INPUT_DIR = 'E:\\FOTKY\\BABICKY_FOTAK\\FOTKY'
OUTPUT_DIR_OK = 'E:\\FOTKY\\BABICKY_FOTAK\\ok'
OUTPUT_DIR_ROZMAZANE = 'E:\\FOTKY\\BABICKY_FOTAK\\rozmazane'

# funkce pro detekci rozmazani obrazku
def is_blurry(img):
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    laplacian_var = cv2.Laplacian(gray, cv2.CV_64F).var()
    canny_var = cv2.Canny(gray, 100, 200).var()
    contrast = cv2.meanStdDev(gray)[1][0][0]
    return laplacian_var < 40 or (canny_var < 20 or contrast < 25)

# funkce pro zpracovani jednoho souboru
def process_file(file_path):
    img = cv2.imread(file_path)

    if is_blurry(img):
        output_path = os.path.join(OUTPUT_DIR_ROZMAZANE, os.path.basename(file_path))
        os.replace(file_path, output_path)
        print(f"Soubor {file_path} byl presunut do adresare {OUTPUT_DIR_ROZMAZANE} kvuli rozmazani.")
    else:
        output_path = os.path.join(OUTPUT_DIR_OK, os.path.basename(file_path))
        os.replace(file_path, output_path)
        print(f"Soubor {file_path} byl presunut do adresare {OUTPUT_DIR_OK}.")

# funkce pro zpracovani celeho adresare
def process_dir(input_dir):
    for root, dirs, files in os.walk(input_dir):
         for file in files:
            if file.lower().endswith(('.jpg', '.png', '.bmp')):
                file_path = os.path.join(root, file)
                process_file(file_path)

# zpracovani vstupniho adresare
if __name__ == "__main__":
    if not os.path.exists(OUTPUT_DIR_OK):
        os.makedirs(OUTPUT_DIR_OK)
    if not os.path.exists(OUTPUT_DIR_ROZMAZANE):
        os.makedirs(OUTPUT_DIR_ROZMAZANE)
    process_dir(INPUT_DIR)
    print("Hotovo.")

11
Vývoj / Re:OpenCV a zpracování fotografií
« kdy: 21. 02. 2023, 22:48:29 »
Optimalizace
import cv2
import os

# vstupni a vystupni slozky
INPUT_DIR = 'E:\\aaa\\aaa\\aaa'
OUTPUT_DIR_OK = 'E:\\aaa\\aaa\\bb'
OUTPUT_DIR_ROZMAZANE = 'E:\\aaa\\aaa\\cc'

# inicializace kaskad pro detekci obliceju a tel
face_cascade = cv2.CascadeClassifier('C:\\python\\Lib\\site-packages\\cv2\\data\\haarcascade_frontalface_default.xml')
body_cascade = cv2.CascadeClassifier('C:\\python\\Lib\\site-packages\\cv2\\data\\haarcascade_fullbody.xml')

# funkce pro detekci rozmazani obrazku
def is_blurry(img):
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    laplacian_var = cv2.Laplacian(gray, cv2.CV_64F).var()
    canny_var = cv2.Canny(gray, 100, 200).var()
    contrast = cv2.meanStdDev(gray)[1][0][0]
    return laplacian_var < 40 or canny_var < 20 or contrast < 25

# funkce pro detekci obliceju a tel v obrazku
def detect_faces(img):
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    bodies = body_cascade.detectMultiScale(gray, 1.3, 5)
    return (len(faces) > 0) or (len(bodies) > 0)

# funkce pro zpracovani jednoho souboru
def process_file(file_path):
    img = cv2.imread(file_path)

    if is_blurry(img) or not detect_faces(img):
        output_path = os.path.join(OUTPUT_DIR_ROZMAZANE, os.path.basename(file_path))
        os.replace(file_path, output_path)
        print(f"Soubor {file_path} byl presunut do adresare {OUTPUT_DIR_ROZMAZANE} kvuli rozmazanym oblicejum nebo telum.")
    else:
        output_path = os.path.join(OUTPUT_DIR_OK, os.path.basename(file_path))
        os.replace(file_path, output_path)
        print(f"Soubor {file_path} byl presunut do adresare {OUTPUT_DIR_OK}.")

# funkce pro zpracovani celeho adresare
def process_dir(input_dir):
    for root, dirs, files in os.walk(input_dir):
        for file in files:
            if file.lower().endswith(('.jpg', '.png', '.bmp')):
                file_path = os.path.join(root, file)
                process_file(file_path)

# zpracovani vstupniho adresare
if __name__ == "__main__":
    if not os.path.exists(OUTPUT_DIR_OK):
        os.makedirs(OUTPUT_DIR_OK)
    if not os.path.exists(OUTPUT_DIR_ROZMAZANE):
        os.makedirs(OUTPUT_DIR_ROZMAZANE)
    process_dir(INPUT_DIR)
    print

12
Vývoj / OpenCV a zpracování fotografií
« kdy: 21. 02. 2023, 22:12:50 »
Hraju si s openCV a pythonem nad rodinnou sbirkou fotek. Momentalne resim, jak rychle a elegantne presunout opravdu hodne rozmazane fotky mimo.

V tehle oblasti jsem uplny zelenac, takze jsem si pomohl pokecal s ChatGPT a dali jsem dokupy tohle. Je to sice napsace s cestama pro windows, ale davali jsem to dokupy pro linux, meni se pouze cesty.

Prohledat to INPUT_DIR rekurzivne s omezenim na obrazove soubory.  Detekuje to tvare a hodnota return fm < 40 urcuje prah rozmazani, kdy je fotka uz "spatna" a bude presunuta, nebo je v poradku. Jsem na zacatku. Mate nekdo s openCV zkusenosti?

Kód: [Vybrat]
import os
import cv2

INPUT_DIR = 'C:\\aaa\\aaa\\aaa'
OUTPUT_DIR_OK = 'E:\\aaa\\aaa\\bb'
OUTPUT_DIR_ROZMAZANE = 'E:\\aaa\\aaa\\cc'

face_cascade = cv2.CascadeClassifier('C:\\python\\Lib\\site-packages\\cv2\\data\\haarcascade_frontalface_default.xml')

def is_blurry(img):
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    fm = cv2.Laplacian(gray, cv2.CV_64F).var()
    return fm < 40

def detect_faces(img):
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, 1.3, 5)
    return len(faces) > 0

def process_file(file_path):
    img = cv2.imread(file_path)
   
    if is_blurry(img) or not detect_faces(img):
        output_path = os.path.join(OUTPUT_DIR_ROZMAZANE, os.path.basename(file_path))
        os.replace(file_path, output_path)
    else:
        output_path = os.path.join(OUTPUT_DIR_OK, os.path.basename(file_path))
        os.replace(file_path, output_path)

def process_dir(input_dir):
    for root, dirs, files in os.walk(input_dir):
   
        for file in files:
         
            if file.lower().endswith(('.jpg', '.png', '.bmp')):
                file_path = os.path.join(root, file)
                process_file(file_path)

if __name__ == "__main__":
    if not os.path.exists(OUTPUT_DIR_OK):
        os.makedirs(OUTPUT_DIR_OK)
    if not os.path.exists(OUTPUT_DIR_ROZMAZANE):
        os.makedirs(OUTPUT_DIR_ROZMAZANE)
    process_dir(INPUT_DIR)
    print("Done.")

13
Software / Re:FFmpeg x264 na x265 u kontejneru mp4
« kdy: 13. 02. 2023, 12:19:49 »
Handbrake si s tim neporadi? H.265 s vic jak 8bit hloubkou dela problemy napriklad ve windows a na androidu, kde system neumi vygenerovat nahledy. U linuxu v tuhle chvili nevim, mozna jak ktera distribuce. Ohledne kvality je zajimava stranka primo z napovedy k Handbrake
https://handbrake.fr/docs/en/latest/workflow/adjust-quality.html
Zasadne pouzivam jeden pruchod a i na vyssi rychlosti fast, faster atd to dela pekne vysledky.

14
Windows a jiné systémy / Re:Jak na Ad Blocker na mobilech?
« kdy: 05. 01. 2023, 10:50:16 »
Dlouho jsem mel AdAway ( s rootem, instalace z F-Droid ). Blokovalo me to bezdratovou aktualizaci na telefonu, takze jsem mel pocit, ze se na me vyrobce vykaslal. Ted mam asi tyden AdGuard, bylo s tim trosku patlani ohledne certifikatu pro Chrome. Firefox jsem pouzival dloooouhou dobu, ale prisel jsem na chut Chromu a synchronizaci vseho z neho. Kdyz je telefon bez rootu, tak AdGuard neumi osetrit https v aplikacich, ktere se koukaji pro certifikat do systemoveho uloziste. Root tohle resi, je na to postup a modul pro magisk jak to udelat. Mam AdGuard nove i na synology nasce v dockeru, misto reklam jsou ale velky sedy nebo bily okna.

15
Windows a jiné systémy / Re:Jak na Ad Blocker na mobilech?
« kdy: 29. 12. 2022, 19:57:43 »
Dlouho jsem mel adaway s rootem. Jelikoz jsem chtel poresit i telefony v rodine, tak jsem koupil 9 licenci AdGuard. Funguje to pekne, ale bez rootu to nebere https komunikacki a s rootem jsem mel problem s chrome. Rodine zatim rootovat nechci a svuj jsem preinstaloval a tim unrootnul. Ale casem tk zase zkusim, je potreba magisk, modul a certifikatem ktery ho ulozi do systemu a pak to blokuje vse. Az na ten chrom, ale nejaka reseni jsou. Uvazuju na domaci sit nasadit pihole na synology NAS.

Stran: [1]