Skip navigation

Diagram rajzolási példa

04_01_c_inverse_lut_diagram.py (kiegészítő anyag)

A keresőtáblát grafikonon is ábrázolhatjuk. Ehhez könnyen használható eszközt biztosít a MatPlotLib csomag pyplot eszköze. A példaprogram vörössel jelölt részei jelzik a szükséges hívásokat.

import cv2
import numpy as np
from matplotlib import pyplot as plt

# Grafikon beállítások
fig = plt.figure(figsize=(4, 4), dpi=100)

ax = fig.add_subplot(111)
ax.set_title('Inverzió LUT diagram')
fig.canvas.set_window_title('Inverzió LUT diagram')
plt.xlabel('Eredeti intenzitásérték')
plt.ylabel('Pont operáció eredménye')
plt.xlim([0, 255])
plt.ylim([0, 255])

im = cv2.imread('Sudoku_h.jpg', cv2.IMREAD_GRAYSCALE)
cv2.imshow('Eredeti', im)

# Alappontok [0, 255] között, 8 bites, előjel nélküli egész számként
x = np.arange(0, 256, 1, np.uint8)


# Inverz készítés keresőtáblával
lut = np.arange(0, 256, 1, np.uint8)

lut = 255 - lut
im_inv = cv2.LUT(im, lut, None)
cv2.imshow('LUT', im_inv)

# Diagram rajzolás
plt.plot(x, x, 'g--', label='Eredeti')

plt.plot(x, lut, 'r-', label='Inverzió')
plt.legend()
# plt.savefig('03_01_c_inverse_lut_diagram.png', bbox_inches='tight')
plt.show()

Az inverzió keresőtábla grafikon-megjelenítése az alábbi.

A vízszintes tengelyen az eredeti, a függőleges tengelyen a művelet eredményeként előálló értékek szerepelnek. A zöld színű szaggatott vonal az eredeti, a vörös színű folytonos vonal az inverzió alkalmazásával előállót mutatja.