AI/Computer Vision

[Computer Vision] μ˜μƒμ˜ λͺ…μ•” μ œμ–΄

Pupbani 2024. 8. 28. 22:59
728x90
λ°˜μ‘ν˜•
πŸ‘€ λ³Έ μ˜ˆμ œλŠ” Window10의 VSCode, Python3.11.0둜 μž‘μ„±λ˜μ—ˆμŠ΅λ‹ˆλ‹€.

 

OpenCVμ—μ„œ 컬러 μ˜μƒμ΄ μ•„λ‹Œ GrayScale둜 이미지λ₯Ό μ—΄κ±°λ‚˜ λ³€ν™˜ν•˜κ²Œ 되면 각 μ’Œν‘œμ˜ 값을 색을 λ‚˜νƒ€λ‚΄λŠ” 값이 μ•„λ‹ˆλΌ μ΄λ―Έμ§€μ˜ λͺ…암을 λ‚˜νƒ€λ‚Έλ‹€.

 

import numpy as np
import cv2

white = np.ones(shape=(480,480),dtype=np.uint8) * 255
cv2.imshow("white",white)
black = np.zeros(shape=(480,480),dtype=np.uint8)
cv2.imshow("black",black)

cv2.waitKey(0)
cv2.destroyAllWindows()

 

밝기가 0인 μ˜μƒ(검은색)

 

 

밝기가 255인 μ˜μƒ(흰색)

 

 

Gray Scale μ˜μƒμ˜ ν”½μ…€μ˜ 값이 0으둜 갈수둝 ν•΄λ‹Ή 픽셀은 검은색에 κ°€κΉŒμ›Œμ§€κ³  255둜 갈수둝 흰색에 κ°€κΉŒμ›Œμ§„λ‹€.

 

import cv2
import numpy as np
img = np.zeros((480,480),np.uint8)
now = 0
def lighting(brightness: int) -> None:
    global img, now
    delta = brightness - now
    
    # 밝기 μ‘°μ •
    if delta > 0:
        img = cv2.add(img, delta)
    elif delta < 0:
        img = cv2.subtract(img, -delta)
    now = brightness

    cv2.imshow("lighting_bar", img)

if __name__ == "__main__":
    cv2.imshow("lighting_bar",img)
    cv2.createTrackbar("Control","lighting_bar",now,255,lighting)
    cv2.waitKey(0)
    cv2.destroyAllWindows()

 

 

νžˆμŠ€ν† κ·Έλž¨μ„ 톡해 μ˜μƒμ˜ 밝기 뢄포λ₯Ό λ³Ό 수 μžˆλ‹€.

import cv2
import matplotlib.pyplot as plt
if __name__ == "__main__":
    image = cv2.imread("test.png",cv2.IMREAD_GRAYSCALE)
    plt.hist(image.ravel(),256,[0,256])
    plt.show()

 

 

컬러 뢄포도 λ³Ό 수 μžˆλ‹€.

import cv2
import matplotlib.pyplot as plt
if __name__ == "__main__":
    image = cv2.imread("test.png")
    color = ('b','g','r')
    for i,col in enumerate(color):
        histr = cv2.calcHist([image],[i],None,[256],[0,256])
        plt.plot(histr,color=col)
        plt.xlim([0,256])
    plt.show()

728x90
λ°˜μ‘ν˜•