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.


Témata - mastnacek

Stran: [1]
1
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.

2
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.")

Stran: [1]