데이터 타입 확인

import cv2

img = cv2.imread('data/messi5.jpg')

print(img.shape) //shape
print(img.size) //size
print(img.dtype) //dtype

이미지 나누고 합치기

import cv2

img = cv2.imread('data/messi5.jpg')

b,g,r = cv2.split(img) //이미지 나누기

cv2.imshow('b', b)
cv2.imshow('g', g)
cv2.imshow('r', r)

img = cv2.merge((b,g,r)) //이미지 합치기

cv2.imshow('image',img)
cv2.waitKey()
cv2.destroyAllWindows()

이미지 리사이즈

import cv2

img = cv2.imread('data/messi5.jpg')
img2 = cv2.imread('data/opencv-logo.png')

ball = img[280:340, 330:390]
img[273:333, 100:160] = ball

img = cv2.resize(img, (512, 512)) //이미지 리사이즈
img2 = cv2.resize(img2, (512,512))

dst = cv2.addWeighted(img, .9, img2, .1, 0)
cv2.imshow('image',dst)
cv2.waitKey()
cv2.destroyAllWindows()

bitwise 연산

비트 연산(Bitwise Operations)은 컴퓨터에서 비트 단위로 데이터를 처리하는 연산입니다. 이러한 연산은 주로 컴퓨터의 하드웨어 레벨에서 사용되며, 데이터의 비트 패턴을 조작하거나 검사하는 데 사용됩니다. 주요 비트 연산에는 AND, OR, XOR, NOT 등이 포함됩니다.

import cv2
import numpy as np

img1 = np.zeros((250, 500, 3), np.uint8)
img1 = cv2.rectangle(img1, (200,0), (300,100),(255,255,255), -1)
img2 = np.zeros((250, 500, 3), np.uint8)
img2 = cv2.rectangle(img2, (250,0), (500,250), (255,255,255), -1)

bitAnd = cv2.bitwise_and(img2, img1)
bitOr = cv2.bitwise_or(img2, img1)
bitXor = cv2.bitwise_xor(img1, img2)
bitNot1 = cv2.bitwise_not(img1)
bitNot2 = cv2.bitwise_not(img2)

cv2.imshow("img1", img1)
cv2.imshow("img2", img2)
cv2.imshow('bitAnd', bitAnd)
cv2.imshow('bitOr', bitOr)
cv2.imshow('bitXor', bitXor)
cv2.imshow('bitNot1', bitNot1)
cv2.imshow('bitNot2', bitNot2)

cv2.waitKey(0)
cv2.destroyAllWindows()

trackbar

트랙바(Trackbar)는 그래픽 사용자 인터페이스 (GUI)에서 사용자가 값을 조정하거나 설정할 수 있는 인터랙티브한 컨트롤 요소입니다. 주로 OpenCV와 같은 컴퓨터 비전 및 이미지 처리 라이브러리 또는 다른 그래픽 애플리케이션에서 사용됩니다.

import numpy as np
import cv2 as cv

def nothing(x):
    print(x)

# Create a black image, a window
img = np.zeros((300,512,3), np.uint8)
cv.namedWindow('image')

cv.createTrackbar('B', 'image', 0, 255, nothing)
cv.createTrackbar('G', 'image', 0, 255, nothing)
cv.createTrackbar('R', 'image', 0, 255, nothing)

switch = '0 : OFF\n 1 : ON'
cv.createTrackbar(switch, 'image', 0, 1, nothing)

while(1):
    cv.imshow('image',img)
    k = cv.waitKey(1) & 0xFF
    if k == 27:
        break

    b = cv.getTrackbarPos('B', 'image')
    g = cv.getTrackbarPos('G', 'image')
    r = cv.getTrackbarPos('R', 'image')
    s = cv.getTrackbarPos(switch, 'image')

    if s == 0:
       img[:] = 0
    else:
       img[:] = [b, g, r]


cv.destroyAllWindows()

트랙바 포지션 값 이미지에 띄우기

import numpy as np
import cv2 as cv

def nothing(x):
    print(x)

# Create a black image, a window
cv.namedWindow('image')

cv.createTrackbar('CP', 'image', 10, 400, nothing)

switch = 'color/gray'
cv.createTrackbar(switch, 'image', 0, 1, nothing)

while(1):
    img = cv.imread('data/lena.jpg')
    pos = cv.getTrackbarPos('CP', 'image')
    font = cv.FONT_HERSHEY_SIMPLEX
    cv.putText(img, str(pos), (50, 150), font, 6, (0, 0, 255), 10)

    k = cv.waitKey(1) & 0xFF
    if k == 27:
        break

    s = cv.getTrackbarPos(switch, 'image')

    if s == 0:
       pass
    else:
       img = cv.cvtColor(img, cv.COLOR_BGR2GRAY)

    img = cv.imshow('image',img)

cv.destroyAllWindows()
profile
어차피 내일 쓸려고 미룰텐데 걍 오늘 쓰자

0개의 댓글

Powered by GraphCDN, the GraphQL CDN