src = cv2.imread('cat.bmp', cv2.IMREAD_COLOR)
print('src.shape: ', src.shape)
# src.shape: (1666, 1666, 3)
print('src.dtype: ', src.dtype)
# src.dtype: uint8
print('The pixel value [B, G, R] at (0, 0): ', src[0,0])
# The pixel value [B, G, R] at (0, 0): [205 196 123]
dst = np.zeros(src.shape, src.dtype)
for j in range(src.shape[0]):
for i in range(src.shape[1]):
p1 = src[j, i]
p2 = dst[j, i]
p2[0] = 255 - p1[0]
p2[1] = 255 - p1[1]
p2[2] = 255 - p1[2]
cvtColor(src, dst, code, dstCn = 0)
COLOR_BGR2RGB, COLOR_RGB2BGR
COLOR_BRG2GRAY
COLOR_GRAY2BGR
BGR2HSV, HSV2BGR
BGR2YCrCb, YCrCb2BGR
src = cv2.imread('jnary.png', cv2.IMREAD_COLOR)
bgr_planes = cv2.split(src)
cv2.imshow('B_plane', bgr_planes[0])
#파란색 성분은 흰색으로, 나머지는 검정색
cv2.imshow('G_plane', bgr_planes[1])
cv2.imshow('R_plane', bgr_planes[2])
# 합치기
dst = cv2.merge(bgr_planes)
src_ycrcb = cv2.cvtColor(src, cv2.COLOR_BGR2YCrCb)
ycrcb_planes = cv2.split(src_ycrcb)
ycrcb_planes[0] = cv2.equalizeHist(ycrcb_planes[0])
dst_ycrcb = cv2.merge(ycrcb_planes)
dst = cv2.cvtColor(dst_ycrcb, cv2.COLOR_YCrCb2BGR)
def on_hue_change(_=None):
lower_hue = cv2.getTrackbarPos('Lower Hue', 'mask')
upper_hue = cv2.getTrackbarPos('Upper Hue', 'mask')
lowerb = (lower_hue, 100, 0)
upperb = (upper_hue, 255, 255)
mask = cv2.inRange(src_hsv, lowerb, upperb)
cv2.imshow('mask', mask)
def main():
global src_hsv
src_hsv = cv2.cvtColor(src, cv2.COLOR_BGR2HSV)
cv2.imshow('src', src)
cv2.namedWindow('mask')
cv2.createTrackbar('Lower Hue', 'mask', 40, 179, on_hue_change)
cv2.createTrackbar('Upper Hue', 'mask', 80, 179, on_hue_change)
on_hue_changed(0)
cv2.waitKey()
cv2.destroyAllWindows()
ref = cv2.imread('ref.png', cv2.IMREAD_COLOR)
mask = cv2.imread('mask.bmp', cv2.IMREAD_GRAYSCALE)
ref_ycrcb = cv2.cvtColor(ref, cv2.COLOR_BGR2YCrCb)
channels = [1, 2]
cr_bins = 128
cb_bins = 128
histSize = [cr_bins, cb_bins]
cr_range = [0, 256]
cb_range = [0, 256]
ranges = cr_range + cb_range
hist = cv2.calcHist([ref_ycrcb], channels, mask, histSize, ranges)
src = cv2.imread('kids.png', cv2.IMREAD_COLOR)
src_ycrcb = cv2.cvtColor(src, cv2.COLOR_BGR2YCrCb)
backproj = cv2.calcBackProject([src_ycrcb], channels, hist, ranges, 1)
cv2.imshow('src', src)
cv2.imshow('backproj', backproj)
cv2.waitKey()
cv2.destroyAllWindows()