У меня назначено задание, и мне нужна помощь.
Итак, мне нужно преобразовать RGB из изображения в HSI и распечатать три изображения (1. Оттенок, 2. Насыщенность и 3. Интенсивность).
Я не могу использовать никаких библиотек, кроме openCV, для загрузки и печати изображения;все остальное должно быть сделано вручную.
У меня есть (я думаю) правильные вычисления, но я не могу печатать правильно.Я говорю, что не могу, поскольку вход является кортежем, а вывод - нет.Итак, мой вывод (put.pixel) сейчас пуст.
Надеюсь, что любой может помочь !!
import math
from PIL import Image
RgbString = ' :RGB for pixel: '
HsiString = ' :HSI for pixel: '
img = Image.open('MemeFace.jpg')
HImage = Image.new("HSV", (img.width,
img.height))
rgb_img = img.convert('RGB')
r, g, b = rgb_img.getpixel((1, 1))
HImage.convert('HSV')
def rgb2hsv(r, g, b):
r = float(r)
g = float(g)
b = float(b)
high = max(r, g, b)
low = min(r, g, b)
h, s, v = high, high, high
d = high - low
s = 0 if high == 0 else d/high
if high == low:
h = 0.0
else:
h = {
r: (g - b) / d + (6 if g < b
else 0),
g: (b - r) / d + 2,
b: (r - g) / d + 4,
}[high]
h /= 6
return h,s,v
for x in range (1, img.width):
for y in range (1, img.height):
r, g, b = rgb_img.getpixel((x,y))
print(r, g, b, RgbString, x, y)
print(rgb2hsv(r, g, b),
HsiString, x, y)
HImage.putpixel((x, y), ())
Image._show(HImage)
Image.fromdef