Подсчитайте количество красных пикселей на изображении с помощью - PullRequest
0 голосов
/ 30 марта 2020

Хорошо, поэтому мне было поручено создать функцию, которая возвращает вектор, содержащий количество красных пикселей в каждом бине данного изображения. Функция в Octave имеет следующий заголовок:

function [n] = rHistogram (path_to_image, count_bins)

, где path_to_image - буквально путь к изображению, а count_bins - количество бинов. И я также должен использовать функцию «Hist c». Не могли бы вы помочь мне с кодом для этой функции, я не знаю, с чего начать.

1 Ответ

0 голосов
/ 31 марта 2020

хорошо, так как это звучит как домашнее задание, мы не хотим просто дать ответ сейчас. Пожалуйста, не стесняйтесь дополнить ваш вопрос словами «что я пробовал до сих пор», особенно просто «пошаговым» планом вашего плана работы для решения этой проблемы. Это поможет вам пройти через шаги, необходимые для решения задачи. Может быть, позже кто-то (может быть, вы) сможете вернуться и добавить фактический рабочий ответ, но вот несколько указателей:

  1. с чем вам нужно работать? у вас есть путь к файлу изображения и количество бинов, и все. Если бы вы ничего не знали о коде и не должны были писать код, как бы вы это сделали? Представьте, что вы смотрите на физического мосая c, и вам нужно было сортировать цветные плитки в разные ведра. вы бы посмотрели на каждый пиксель и, исходя из его характеристик, решили, где он должен go.
  2. В коде вам нужно знать - из чего состоит ваше изображение? каким образом Octave может посмотреть на изображение, только если оно имеет имя файла? Как только он его находит, как Octave «сохраняет» изображение в памяти. подсказка - есть массив чисел, которые будут зависеть от типа изображения.
  3. Теперь, какие детали этого сохраненного в Октаве изображения вы можете использовать, как если бы вы сортировали цветные плитки? Вероятно, что-то о стоимости. Вам нужно будет go пройти через каждый пиксель (плитку) и решить, что с ним делать. Каким образом Octave может пройти через каждый пиксель изображения? (Возможно, есть несколько способов, по одному по одному, другие как большие группы, но используйте то, что вы можете, имеет смысл. позже вы можете изучить более эффективные способы.) Как Octave может «сравнить» цвет, чтобы решить, где он должен go?
  4. Что означает "где это должно go" для гистограммы? Как вы думаете, как должен выглядеть ваш выходной массив? Как вы можете создать что-то подобное, и что «положить плитку в ведро» делает с тем, что вам нужно создать?

Существует множество возможных способов решения этой проблемы. Могут даже быть некоторые встроенные функции, которые сокращают утомительные шаги, такие как чтение изображения, сортировка данных и создание гистограммы и т. Д. c. Вы должны быть знакомы с языком программирования и доступными структурами алгоритмов. Хороший совет - начинать с маленьких шагов и продолжать тестирование по пути. Научитесь «шагать» по своему коду, наблюдая за изменением прочитанных, сохраненных и обработанных данных при go.

Обязательно обращайтесь к последней версии руководства Octave , где вы Можно искать конкретные вещи c. Еще одним преимуществом является то, что Octave спроектирован так, чтобы быть совместимым с Matlab (и, вероятно, он составляет 90%, если вам не нужны специализированные инструменты), так что вы можете искать справку, предложения или примеры кода среди информации как Octave, так и Matlab в режиме онлайн.

...