2013-02-26 3 views
0

У меня есть изображение, которое я открыл с помощью LoadImageM, и я получаю данные с помощью Get2D. Кажется, я не могу найти какую-либо встроенную функцию для изменения значения пикселя. Я пробовал использовать несколько вещей от Rectangle до CV_RGB, но без успешных результатов.Изменить значение пикселя

ответ

5

Рассмотрите возможность проверки новой версии библиотеки opencv.

Вы импортировать его с

import cv2 

и возвращает непосредственно Numpy массивы.

Так, например, если вы

image_array = cv2.imread('image.png') 

, то вы можете просто получать доступ и изменять значения пикселей, просто манипулируя image_array:

image_array[0,0] = 100 

устанавливает верхний левый пиксель на значение до 100.

В зависимости от вашей установки у вас могут быть привязки cv2, поэтому проверьте, работает ли import cv2.

В противном случае просто установите opencv и numpy, и вы готовы к работе.

+0

На самом деле у меня уже есть cv2, потому что я использую 'import cv2.cv как cv' в начале моего кода. Итак, по вашему мнению, было бы полезно использовать cv2, а не cv, это правильно? Кстати, я нашел функцию в cv под названием «Set2D», которая делает именно то, что я хочу. Что довольно очевидно, учитывая, что имя другой функции было «Get2D» ... – Leo

+1

Да, это правильно! Работа с массивами numpy намного проще, чем работа со старым API. Вы можете использовать все функции scipy и numpy непосредственно в ваших структурах openCV без необходимости конвертировать все взад и вперед. Это намного лучше. – entropiece

Смежные вопросы