Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 29.04.2013
Сообщений: 30

Numpy. Ошибка при попытке изменить цвет RGB

20.03.2021, 14:39. Показов 1764. Ответов 1

Студворк — интернет-сервис помощи студентам
Добрый день.
Мне дано изображение, я его открываю с помощью misc.imread и получаю трехмерный nd array с названием  chg_photo размером (1845, 1845, 3).
На этом изображении я хочу взять кусочек [1290:1400,118:270] и на нем изменить цвета по следующему правилу:
все значения красного цвета (1 уровень), которые меньше 100, заменить на 147
все значения зеленого цвета (2 уровень), которые меньше 95, заменить на 136
все значения синего цвета (3 уровень), которые меньше 85, заменить на 106

У меня получается такой код:

Python
1
2
3
4
5
6
7
8
9
X, Y = np.ogrid[1290:1400,118:270]
 
mask_red_dark = chg_photo[X,Y,0] < 100
mask_green_dark = chg_photo[X,Y,1] < 95
mask_blue_dark = chg_photo[X,Y,2] < 85
 
chg_photo[mask_red_dark] = 147
chg_photo[mask_green_dark] = 136
chg_photo[mask_blue_dark] = 106
И выдается ошибка:

---> 21 chg_photo[mask_red_dark] = 147
22 chg_photo[mask_green_dark] = 136
23 chg_photo[mask_blue_dark] = 106

IndexError: boolean index did not match indexed array along dimension 0; dimension is 1845 but corresponding boolean dimension is 110

Что имеется в виду?
И как нужно изменить код?
Спасибо
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
20.03.2021, 14:39
Ответы с готовыми решениями:

Ошибка при попытке изменить цвет кнопки через таймер
Решил изучать WPF+XAML ,до этого игрался с WinForms. Хотел проверить как себя поведет Wpf если запустить бесконечный цикл, в winforms всё...

Ошибка при попытке изменить кодировку
Пытаюсь изменить кодировку с помощью Encoding.GetEncoding(866), но выдаёт ошибку: System.NotSupportedException: &quot;No data is available...

Ошибка при попытке изменить размер QVector
Здравствуйте, возникает ошибка при попытке изменить размер массива QProcess. QVector&lt;QProcess&gt; myProcesses(1); ...

1
5516 / 2869 / 571
Регистрация: 07.11.2019
Сообщений: 4,759
21.03.2021, 08:02
Лучший ответ Сообщение было отмечено OlgaVarsh как решение

Решение

Попробуйте что-то такое:

Python
1
2
3
4
5
6
7
8
9
10
11
12
import numpy as np
import imageio
chg_photo = imageio.imread('rrr.JPG')
crop= chg_photo[90:140,118:270,:]
mask_red_dark = crop[:,:,0] < 220
mask_green_dark =  crop[:,:,1] < 177
mask_blue_dark =  crop[:,:,2] < 85
crop[mask_red_dark,0] = 20
crop[mask_green_dark, 1] = 130
crop[mask_blue_dark, 2] = 106
chg_photo[90:140,118:270,:]=crop
imageio.imwrite('test.jpg', chg_photo)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
21.03.2021, 08:02
Помогаю со студенческими работами здесь

Как изменить цвет div по таймеру через rgb?
Добрый день, есть задача в курсе с которой уже день мучаюсь, но ничего не получается в силу нехватки знаний, прошу вас помочь мне. ...

При попытке изменить таблицу в SQL появляется ошибка
Создана база данных, при попытке внести данные в таблицу и при нажатии команды &quot;изменить первые 200 строк&quot; появляется такая...

При попытке изменить данные в таблице Access появляется ошибка
Создал приложение для работы с базой данных При попытке изменить данные в таблице появляется ошибка, но когда закрываешь приложение все...

Почему выдается ошибка при попытке изменить символ в строке?
Здравствуйте! Подскажите пожалуйста почему при попытке присвоить символу одной строки символ другой появляется ошибка - Невозможно...

При попытке изменить код элемента со страницы в WebBrowser выходит ошибка
Добрый вечер! При попытке изменить код элемента с страницы следующим способом ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru