|
0 / 0 / 1
Регистрация: 17.09.2014
Сообщений: 46
|
|
Неверное чтение уровней пикселей04.12.2014, 14:51. Показов 1695. Ответов 27
Метки нет (Все метки)
Создал форму, в ней бокс. В него гружу рисунок, в котором первую строку предварительно подготовил в Фотошопе. Заливал попиксельно только красным цветом, уровень зелёного и синего канала точно равны 0, то есть в них не содержится никакой информации.
Первому пикселю дал 1 в красном канале, второму - 2, третьему - 3 и т.д. по нарастающей. Всего 10 пикселей, соответственно в последнем уровень в красном канале равен 10. Далее проверяю эти уровни попиксельно с помощью команды уровень(x) = Me.Picture1.Point(x, y), где y для первой строки равен 0, а х изменяется с 0 по 9. (Я верно разобрался, что картинка начинается не с 1-го пикселя, а с 0-ого?) Вот что я получаю попиксельно: № в ФШ результат 0 - 1...........256 1 - 2.............3 2 - 3........131333 3 - 4.........65541 4 - 5...........261 5 - 6............6 6 - 7...........261 7 - 8............8 8 - 9.........65545 9 - 10..........11 Раньше с графикой не работал, поэтому вижу причину такого разнобоя в недостатке знаний у себя. Если кому не трудно, дайте ссылку, которая поможет разобраться. Добавлено через 8 минут Добавлю. scale mode стоит в пикселях.
0
|
|
| 04.12.2014, 14:51 | |
|
Ответы с готовыми решениями:
27
Неверное чтение данных из COM порта Разграниченный вход: неверное чтение из БД |
|
es geht mir gut
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
|
|
| 04.12.2014, 15:59 | |
|
Проект бы показали.
0
|
|
|
0 / 0 / 1
Регистрация: 17.09.2014
Сообщений: 46
|
|
| 04.12.2014, 16:04 [ТС] | |
|
Здесь проект, в нём пока много лишнего.
0
|
|
|
es geht mir gut
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
|
|
| 04.12.2014, 16:06 | |
|
У меня антивирус не дает скачать Ваш архив.
Короче, тот цвет, который Вы получаете, еще нужно перевести в RGB. Сейчас набросаю проект и покажу.
0
|
|
|
0 / 0 / 1
Регистрация: 17.09.2014
Сообщений: 46
|
||||||
| 04.12.2014, 16:09 [ТС] | ||||||
|
Вот начало кода. Делаю принудительную остановку после прочтения первого десятка пикселей и смотрю их уровни.
0
|
||||||
|
es geht mir gut
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
|
||||||
| 04.12.2014, 16:27 | ||||||
Сообщение было отмечено The trick как решение
Решение
Вот, смотрите, все четко.
0
|
||||||
|
es geht mir gut
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
|
|
| 04.12.2014, 16:35 | |
|
0
|
|
|
0 / 0 / 1
Регистрация: 17.09.2014
Сообщений: 46
|
||||||
| 04.12.2014, 16:46 [ТС] | ||||||
|
Да, планирую просматривать рисунок небольшими группами по 10 пикселей. Спасибо за подсказку, буду разбираться.
Если я верно понял, то значение, получаемое командой c = P.Point(i, 0) - это произведение всех трёх составляющих цвета? А вот этот фрагмент позволяет выделить из него значения по цветам? Вы облегчили мне продвижение вперёд. Спасибо большое ещё раз.
0
|
||||||
|
0 / 0 / 1
Регистрация: 17.09.2014
Сообщений: 46
|
||||||
| 12.02.2016, 05:32 [ТС] | ||||||
|
Создал форму, на ней разместил массив из 49-ти пикчербоксов. В отдельной папке находятся 49 файлов с расширением *.bmp. Каждому рисунку прописано по одному файлу, последовательно. То есть 1-му пикчербоксу - 1-ый файл, последнему - 49-ый. Файлы представляют собой кропы кадров астросессии. Все они на вид одинаковые, но сняты друг за другом. Потому кроме полезной информации содержат и шумы атмосферы. Стоит задача - прочесть уровни одного и того же пикселя на всех кадрах, усреднить результат и записать его в итоговое изображение.
Написал код для считывания уровня цвета на каждом рисунке. Он правильно считывает уровень только в первом кадре, со второго выдаёт уровень "0", со всех последующих "-1". Подскажите, что я делаю не так? Привожу часть кода.
0
|
||||||
|
es geht mir gut
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
|
||||||
| 12.02.2016, 07:26 | ||||||
|
Вопрос:
0
|
||||||
|
0 / 0 / 1
Регистрация: 17.09.2014
Сообщений: 46
|
|
| 12.02.2016, 07:43 [ТС] | |
|
Почему они равны нулю? Потому что я не привёл весь код? Это не сбрасывает их значения. Стоят периоды для прохождения построчно и по столбцам. Я привёл ту часть кода, которая выдаёт ошибку.
0
|
|
|
es geht mir gut
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
|
||
| 12.02.2016, 08:21 | ||
|
Только у меня рисунки от 0 до 48
0
|
||
|
0 / 0 / 1
Регистрация: 17.09.2014
Сообщений: 46
|
||||||
| 12.02.2016, 08:35 [ТС] | ||||||
|
Похоже, я сильно запутался и начинаю всё с нуля. Создал новый проект, в нём форму и модуль. На форме разместил один-единственный пикчер-бокс, ему задал рисунок и написал процедуру для копирования изображения с этого пикчер-бокса и переноса его непосредственно на форму. Начинается работа, но встречается уровень пикселя, равный -1. Я знаю о том, что такой уровень соответствует краю изображения. Но это значение попадается и посреди рисунка. И само итоговое изображение занимает на форме крохотный уголок слева вверху форму.
0
|
||||||
|
es geht mir gut
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
|
||
| 12.02.2016, 08:43 | ||
![]() Не Width и Height, а ScaleWidth и ScaleHeight (в 7 сообщении уже говорилось) ScaleMode=3 ' пиксели. И у формы, и у рисунков Autoredraw=true ' И у формы, и у рисунков
1
|
||
|
0 / 0 / 1
Регистрация: 17.09.2014
Сообщений: 46
|
|
| 12.02.2016, 08:53 [ТС] | |
|
Внёс изменения, проверил, запустил. Минусов не увидел, но изображение рисует всё равно крохотное. Я опять чего-то не учитываю.
0
|
|
|
es geht mir gut
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
|
|
| 12.02.2016, 08:55 | |
|
0
|
|
|
es geht mir gut
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
|
|
| 12.02.2016, 08:56 | |
|
0
|
|
|
0 / 0 / 1
Регистрация: 17.09.2014
Сообщений: 46
|
|
| 12.02.2016, 09:01 [ТС] | |
|
Да, код такой же. Приложил архив с файлом изображения, формат *.bmp. Если у Вас картинка на форме примет такие же размеры, как и у исходника, значит, я вновь ошибаюсь.
0
|
|
|
es geht mir gut
11274 / 4760 / 1183
Регистрация: 27.07.2011
Сообщений: 11,439
|
|
| 12.02.2016, 09:10 | |
|
1
|
|
| 12.02.2016, 09:10 | |
|
Помогаю со студенческими работами здесь
20
Неверное чтение файла в другой кодировке
Image со свойством Stretch=True и чтение пикселей Согласование уровней Задача в 5 уровней Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2.
Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
|
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
|
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
|
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2.
Данный документ берёт данные из другого нетипового документа. . .
|
|
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
|
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача: реализовать программный контроль на предмет проведения документа. . .
|
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2.
Задача:
1. Реализовать контроль заполнения реквизита. . .
|
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение:
DISM / Online / Add-Capability / CapabilityName:WMIC~~~~
Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
|