»Ë»Ñ Æ÷·³

ÀÌ°Å Á¦°¡ Á¦´ë·Î »ç¿ëÇÑ°Ô ¸ÂÀ»±î¿ä??5

import cv2
import numpy as np
import time

# À̹ÌÁö ·Îµå (ÆÄÀÏ °æ·Î ¼öÁ¤ ÇÊ¿ä)
image_path = 'F:/_sortYet/1.jpg'  # »ç¿ëÀÚÀÇ À̹ÌÁö ÆÄÀÏ °æ·Î·Î ¼öÁ¤Çϼ¼¿ä
image = cv2.imread(image_path)

# À̹ÌÁö°¡ Á¤»óÀûÀ¸·Î ·ÎµåµÇ¾ú´ÂÁö È®ÀÎ
if image is None:
    print("À̹ÌÁö¸¦ ãÀ» ¼ö ¾ø½À´Ï´Ù. °æ·Î¸¦ È®ÀÎÇϼ¼¿ä.")
    exit()

# CUDA GPU ¸Þ¸ð¸®¿¡ À̹ÌÁö ¾÷·Îµå
gpu_image = cv2.cuda_GpuMat()
gpu_image.upload(image)

# CUDA·Î BGR À̹ÌÁö¸¦ HSV·Î º¯È¯
gpu_hsv = cv2.cuda.cvtColor(gpu_image, cv2.COLOR_BGR2HSV)

# µð¹ö±× ¸Þ½ÃÁö Ãß°¡
print("gpu_hsv ŸÀÔ:", type(gpu_hsv))

# HSV¹üÀ§ ¼³Á¤
lower_red_1 = np.array([0, 120, 70], dtype=np.uint8)
upper_red_1 = np.array([10, 255, 255], dtype=np.uint8)
lower_red_2 = np.array([170, 120, 70], dtype=np.uint8)
upper_red_2 = np.array([180, 255, 255], dtype=np.uint8)

# CUDA¿¡¼­ »¡°£»ö ¸¶½ºÅ© »ý¼º
mask_1 = cv2.cuda.inRange(gpu_hsv, lower_red_1, upper_red_1)
mask_2 = cv2.cuda.inRange(gpu_hsv, lower_red_2, upper_red_2)

# µÎ ¸¶½ºÅ©¸¦ ÇÕÃÄ ÃÖÁ¾ ¸¶½ºÅ© »ý¼º
gpu_mask = cv2.cuda.add(mask_1, mask_2)

# µð¹ö±× ¸Þ½ÃÁö Ãß°¡
print("mask_1 ŸÀÔ:", type(mask_1))
print("mask_2 ŸÀÔ:", type(mask_2))
print("gpu_mask ŸÀÔ:", type(gpu_mask))

# ¸¶½ºÅ©¸¦ CPU·Î ´Ù¿î·Îµå
mask = gpu_mask.download()

# ¿øº» À̹ÌÁö¿Í ¸¶½ºÅ©¸¦ »ç¿ëÇÏ¿© »¡°£»ö ºÎºÐ¸¸ ÃßÃâ
result = cv2.bitwise_and(image, image, mask=mask)

# °á°ú Ãâ·Â
cv2.imshow('Original Image', image)
cv2.imshow('Red Mask', mask)
cv2.imshow('Result Image', result)

# Å° ÀÔ·Â ´ë±â ÈÄ Á¾·á
cv2.waitKey(0)
cv2.destroyAllWindows()



ÆÄÀ̽㿡 opencv cuda¹öÀü ¿ì¿©°îÀý³¡¿¡ ¼³Ä¡ÇÏ°í
Å×½ºÆ® Äڵ带 ¸¸µé¾î¼­ µ¹·Áº¸´Âµ¥ 
 
inRange¿¡¼­ °è¼Ó ¿¡·¯°¡ ¹ß»ýÇÏ³×¿ä ¤Ð¤Ð
 
Á¦°¡ ¹º°¡ À߸øÇÏ°í ÀÖ³ª¿ä?
 
À̹ÌÁö¿¡¼­ »¡°£»ö¸¸ ¸¶½ºÅ·Çؼ­ º¸¿©ÁÖ´Â ÄÚµå·Î ¸¸µé¾ú°Åµç¿ä
 

0
ÃßõÇϱ⠴ٸ¥ÀÇ°ß 0
|
°øÀ¯¹öÆ°

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 ÇູÇϱæ¹Ù·¡¿ä

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 Æ°Æ°µ¥½º

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 ÇູÇϱæ¹Ù·¡¿ä

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 Æ°Æ°µ¥½º

´Ù¸¥ÀÇ°ß 0 Ãßõ 0 ¾Æ·ç½º
  • ¾Ë¸² ¿å¼³, »óó ÁÙ ¼ö ÀÖ´Â ¾ÇÇÃÀº »ï°¡ÁÖ¼¼¿ä.
©¹æ »çÁø  
¡â ÀÌÀü±Û¡ä ´ÙÀ½±Û ¸ñ·Ïº¸±â