Функция getPhoto

Описание функции

Функция возвращает одномерный массив байт, в который записаны пиксели изображения в формате rgb32, снятого с камеры (размер изображения — 160x120). Данная функция может быть использована для решения задач распознавания маркеров.

Вызов функции

pic = getPhoto()

Пример работы

Рассмотрим пример преобразования кадра, снятого на камеру, в цветовые форматы «оттенок серого» и «черно-белый».

Сделайте снимок и выведите результат на экран c помощью функции show.

# взять кадр в формате rgb32
pic = getPhoto()
brick.display().show(pic, total_height, total_width, "rgb32")
script.wait(2000)

Результат:

Реализация функции перевода изображения в оттенок серого

def grayScale(sPic):
	bufPic = []
	for i in range(total_height):
		for j in range(total_width):
			x = i * total_width + j
			p = sPic[x]
			r = (p & 0xff0000) >> 16	# взять значение компоненты красного
			g = (p & 0xff00) >> 8 # взять значение компоненты зеленого
			b = (p & 0xff) # взять значение компоненты синего
			p = r * 0.299 + g * 0.587 + b * 0.114; # компонента Y из YUV
			bufPic.append(p)
	return bufPic

Перевод изображения в черно-белый формат и вывод на дисплей:

pic = grayScale(pic)

brick.display().show(pic, total_height, total_width, "grayscale8")
script.wait(2000)

Результат:

Реализация функции бинаризации изображения

# Бинаризация -- перевод изображения в ЧБ
def binarization(treshold, sPic):
	bufPic = []
	for i in range(len(sPic)):
		bufPic.append(255 if sPic[i] > treshold else 0)
	return bufPic

Перевод изображения в черно-белого и вывод на дисплей:

pic = binarization(80, pic)
brick.display().show(pic, total_height, total_width, "grayscale8")
script.wait(2000)

Результат:

Дополнительный материал: презентация Университета Иннополис «Распознавание меток ARTag».

Last updated