تبدیل 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]
ارسال پاسخ