Skip navigation

Interaktív paraméterállítás

Trackbar

Képfeldolgozó műveletek paraméterbeállítása időigényes lehet, ha a forráskód módosítása után mindig újra kell futtatnunk a programot, hogy lássuk az eredményt.

Az OpenCV egy csúszka vezérlőelem segítségével lehetőséget ad paraméter értékek gyors, vizuális állítására. Az eredményt rögtön láthatjuk.

03_02_threshold_trackbar.py

import cv2
import numpy as np


def onThresholdTrackbar(trackPos):
print('Global threshold at intensity value {}.'.format(trackPos))
threshold, im_thresh = cv2.threshold(src, trackPos, 255, cv2.THRESH_BINARY)
cv2.imshow('Result', im_thresh)


src = cv2.imread('screen01_h.png', cv2.IMREAD_GRAYSCALE)
cv2.imshow('Source', src)

otsuThreshold, im_thresh = cv2.threshold(src, -1, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
print('Detected Otsu threshold = {}'.format(otsuThreshold))
cv2.imshow('Result', im_thresh)

cv2.createTrackbar('threshold', 'Result', int(otsuThreshold), 255, onThresholdTrackbar)
onThresholdTrackbar(otsuThreshold)
cv2.waitKey(0)

cv2.destroyAllWindows()

Használata

A createTrackbar() függvény fejléce:

cv2.createTrackbar(trackbarName, windowName, value, count, onChange)

trackbarName Szöveg sztring, ami megjelenik a csúszka bal oldalán. Beazonosíthatjuk, melyik paramétert állítja, amennyiben több ilyen vezérlő is hozzárendelésre kerül egy ablakhoz.
windowName Trackbar vezérlőelemet egy előzetesen már létrehozott ablakhoz rendelhetünk hozzá.
value Mi legyen a kezdeti paraméterérték.
count Mi legyen a maximális értéke a csúszkának.
Fontos megszorítás, hogy a számlálás csak egyesével, egész értékenként történhet, és csak nullával kezdődhet!
onChange Egy saját függvényünk neve, amelyet akkor hív meg a rendszer, ha mozgatjuk a csúszkát. A függvény paraméterként megkapja a paraméter aktuális értékét.

Feladat

Próbáljuk ki többféle bementi képre a küszöbölést és a vágást a csúszka segítségével!