تبدیل rgb به hsi در پایتون
مدلهای معروف رنگی RGB و HSI دو مدل رنگی معروف در دنیای پردازش تصویر و کار با تصاویر دیجیتال است. در این نوشته روش تبدیل دادههای تصویر RGB به HSI را با کمک زبان برنامه نویسی پایتون به شما آموزش میدهیم.
تبدیل rgb به hsi در پایتون
تبدیل RGB به HSI دارای یک فرمول ریاضی معروف است که ابتدا میتوانید در زیر آن را بررسی کنید:
اگر فرمول بالا را دقت کنید میبینید که به سادگی فقط کافیست این فرمول را تبدیل به یک تابع زبان پایتون کنید. کد پایتون زیر به شما کمک میکند تا تبدیل RGB به HSI در پایتون انجام دهید.
def RGB_TO_HSI(img): with np.errstate(divide='ignore', invalid='ignore'): #Load image with 32 bit floats as variable type bgr = np.float32(img)/255 #Separate color channels blue = bgr[:,:,0] green = bgr[:,:,1] red = bgr[:,:,2] #Calculate Intensity def calc_intensity(red, blue, green): return np.divide(blue + green + red, 3) #Calculate Saturation def calc_saturation(red, blue, green): minimum = np.minimum(np.minimum(red, green), blue) saturation = 1 - (3 / (red + green + blue + 0.001) * minimum) return saturation #Calculate Hue def calc_hue(red, blue, green): hue = np.copy(red) for i in range(0, blue.shape[0]): for j in range(0, blue.shape[1]): hue[i][j] = 0.5 * ((red[i][j] - green[i][j]) + (red[i][j] - blue[i][j])) / \ math.sqrt((red[i][j] - green[i][j])**2 + ((red[i][j] - blue[i][j]) * (green[i][j] - blue[i][j]))) hue[i][j] = math.acos(hue[i][j]) if blue[i][j] <= green[i][j]: hue[i][j] = hue[i][j] else: hue[i][j] = ((360 * math.pi) / 180.0) - hue[i][j] return hue #Merge channels into picture and return image hsi = cv2.merge((calc_hue(red, blue, green), calc_saturation(red, blue, green), calc_intensity(red, blue, green))) return hsi
اگر کدهای بهتری برای تبدیل RGB به HSI در پایتون دارید در بخش نظرات همین نوشته برای ما ارسال کنید تا به این نوشته اضافه شود.
برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]
ارسال پاسخ