1. Пользуйтесь тегами кода. - [code] ... [/code] 2. Точно указывайте язык, название и версию компилятора (интерпретатора). 3. Название темы должно быть информативным. В описании темы указываем язык!!!
Необходимо написать программу на C++ для перевода из цветовой схемы YUV в HSV. Но для этого сначала необходимо переводить в RGB, а затем в нужную цветовую схему. Я создал свой класс и объект этого класса. Затем пытаюсь присвоить полю этого объекта число. Программа компилируется (пишет что ошибок нет), но при запуске программы после нажатия кнопки перевести выдается ошибка: "Access violation at adress 00401BB1 in module Project1.exe. Write of adress 00000000" Подскажите в чем ошибка? Я не уверен что выложил нужный код, а все файлы нельзя загрузить.
1. Твои формулы явно отличаются от приведенных Википедии http://ru.wikipedia.org/wiki/YUV (кстати, если говоришь про внешний источник, приводи точные ссылки, не заставляй людей искать).
2. Откуда взяты значения, которые ты называешь максимальными? Я не спец по цветоделению, как и большинство народа тут, думаю, так что ты приводи побольше инфы, если хочешь получить помощь.
Мои формулы правильные, надо было при получении значения больше, чем 255, просто записать 255. Так что с этим разобрался.
Осталось только понять, почему функция atan2 возвращает неправильные значения.
Осталось только понять, почему функция atan2 возвращает неправильные значения.
atan2 возвращает неправильные значения, когда получает неправильные параметры. Я не знаю, какими тестами ты проверяешь правильность, но если хочешь - приведи значения R, G, B, при которых по-твоему происходит ошибка (не забудь также написать, что ты ожидаешь увидеть в качестве результата).
И не надо говорить, что это не работает для любых исходных данных, потому что:
Мне совсем неинтересно восстанавливать твой проект. Одно дело, когда ты его присоединяешь полностью, и можно откомпилировать и посмотреть, что там творится, а другое дело - что ты выкладываешь какие-то куски, а что там у тебя лежит на форме, как это все называется, как описано в классе формы - это я должен догадаться сам?
Вот тебе пример:
Цитата
Edit1->Text=FloatToStr®; // <--- Откуда взялась r ??? Edit2->Text=FloatToStr(G); Edit3->Text=FloatToStr(B); Okno->Color=RGB(R,G,B); max=R;
Процитирован твой же код, если ты не заметил. Так вот, собственно, вопрос: откуда взялся идентификатор r (это при том, что r и R для С++ - то же самое, что для тебя - "черное" и "белое", это тебе не Дельфи). Опечатка? Исправляй... Так и задумывалось? Но тогда я просто не смогу откомпилировать твою программу, поскольку не знаю, что именно задумывалось...
Мне еще меньше интересно бродить по интернету, и искать фразы типа: "значение YUV = ... , тогда HSV = ...", поэтому приводи конкретные значения. Повторяю: чему перед вычислением Px и Py равняются R, G, B и какие значения H, S, V ожидаются...