-
Notifications
You must be signed in to change notification settings - Fork 82
6212 Ярославцев М.В. Лаб.3 Вар.3 #3
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
goganizmrulit40
wants to merge
15
commits into
Velesikamid:main
Choose a base branch
from
goganizmrulit40:lab3-var3
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Также скачаем изображение для работы с ним.
…ветствующую функцию, аргументы которой - это пути к входному и выходному изображениям
…обности и работоспособности, также пропишем обработку исключений в main
…м новую функцию по считыванию/загрузке изображения из файла по примеру из теории. Сразу пропишем докстринг к этой функции. Функция возвращает изображение как массив numpy в формате BGR, т.е. в двоичном представлении цветных изображений.
…ет кроме ширины и высоты изображения также количество каналов, что нам не нужно, следовательно, мы забираем оттуда только нужные нам параметры. Сразу пропишем докстринг.
… предыдущей функции. Для этого нам нужно проверить количество измерений массива. Их 3, т.е. изображение цветное.
… Помимо этого, воспользуемся функцией calcHist библиотеки openCV для вычисления гистограммы изображения. В параметры этой функции мы передаём изображение как массив numpy, массив цветов, без маски, кол-во бинов, т.е. кол-во раз, когда каждое значение пикселя будет встречаться. К примеру, если бы у нас было 2 бина, рассматривалось бы 2 массива [0, 128] и [128,256], для полного же масштаба изображения мы передаем 256 бинов. Также передадим диапазон значений интенсивности, какой он обычно есть. Затем образуем гистограмму с соответствующими настройками. Далее всё по примеру из теории.
…результата. В зависимости от количества каналов, выводим соответствующее изображение. Убираем оси координат, конвертируем в соответсвующий формат и принимаем как параметр функции, заголовок. Сразу пропишем докстринг к функции.
…ажениями. Добавим условие в функцию построения гистограммы, чтобы в случае передачи черно-белого изображения, гистограмма рисовалась именно такая. Но суть в том, что openCV принудительно конвертирует изображения в цветные (BGR), поэтому добавляем ещё один аргумент в парсинг аргументов командной строки, чтобы можно было принудительно конвертировать в черно-белый формат.
…енно состыковку двух изображений. Мы масштабируем второе изображение к высоте первого с сохранением пропорций. К примеру, 1 - 800x600, 2 - 600x400, scale_factor = 600 / 400 = 1.5, new_width = int(600 * 1.5) = 900, след-но, у получившегося изображения: 900x600, где сохраняется пропорция 3:2, сразу пропишем докстринг.
…шем маленькую дополнительную функцию, создающую зеркальное отражения исходного изображения при отсутствии второго изображения для состыковки, т.о. состыкуем изображение с его зеркальной копией. Мы зеркалим по вертикальной оси, но также можно: '0' - по горизонтали и '-1' - по обеим осям
…сохранения результата в файл. По примеру из теории, воспользуемся cv2.imwrite для сохранения изображения.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
ФИО: Ярославцев Максим
Номер группы: 6212
Номер лабораторной: 3
Номер варианта: 03
Краткое описание решаемой задачи: Согласно варианту 03 лабораторной 3 мне надо было научиться работать с openCV и matplotlib, построить гистограмму и состыковать два изображения
Краткое описание работы кода: Модуль
main.pyявляется точкой входа в приложение и выполняет основную работу программы . Чтобы его запустить, требуется указать аргументы командной строки:python main.py war40k.jpg output.jpg --second_image war40k_2.jpgРабота по закрытию академической разницы.