#python #image-processing #computer-vision
#python #обработка изображений #компьютерное зрение
Вопрос:
Я хотел спросить, в каком диапазоне можно указать координаты пикселей для пикселя изображения?
Допустим, у меня есть изображение определенного размера (100*100)
. До сих пор я использовал для доступа к определенному пикселю как int
или float
значение , например (50,50) or (40,85)
.
Недавно я наткнулся на репозиторий github, где местоположение изображения инициализируется как значения между (-1,1)
использованием следующего кода:
pixel_location = np.random.uniform(-1, 1, size=(1,2)).astype(np.float32)
Это немного сбивает с толку меня, как мы можем получить доступ к местоположению изображения, используя равномерное распределение от диапазона -1
до 1
?
Что следует иметь в виду, когда моя программа генерирует местоположения пикселей изображения из диапазона 0 - 100
, который я должен ввести в этот код github, который использует местоположения пикселей от -1
до 1
для размера изображения 100*100
Примечание о проекте: мне нужно обработать определенную часть изображения для задачи классификации с использованием репозитория github, но я думаю, что формат расположения изображения вызовет проблему здесь.
Комментарии:
1. ваш код не имеет никакого смысла. откуда вы это взяли?
2. строка 58: github.com/amasky/ram/blob/master/ram.py
3. похоже на какой-то тип нормализованных координат
4. @ChristophRackwitz Не могли бы вы объяснить, почему это не имеет смысла при инициализации местоположения?
Ответ №1:
здесь, если у вас есть изображение размером 100×100, img[-1][1] будет 1-м пикселем 99-й строки. вы можете получить результат, используя opencv, как показано ниже
img = cv2.imread("Test.jpg")
print(img[-1][1])
вы получите значение пикселя [99,1]
для большей уверенности вы можете использовать
img = cv2.imread("Test.jpg")
img[-1][1] = (0,0,255)
cv2.imwrite("Test.jpg",img)
пиксель [99,1] будет красным в Test.jpg
Комментарии:
1. Мне немного непонятно, когда я использую:
np.random.uniform(-1, 1, size=(1,2)).astype(np.float32)
, я получаю значения с плавающей запятой от-1
до1
, например:array([[0.87334806, 0.6837041 ]], dtype=float32)
. Я хочу найти сопоставление между этим и моим оригинальным методом фактического определения местоположения, например, напрямую используя пиксельные координаты « (50,50)« . В вашем ответе вы используетеint
значения.