Публикувано е второ предизвикателство със срок до утре 13:00.
Ползвайте тази тема при въпроси и неяснотии свързани с него.
Публикувано е второ предизвикателство със срок до утре 13:00.
Ползвайте тази тема при въпроси и неяснотии свързани с него.
Коя от всичките формули се очаква да ползваме за grayscale (има разлики в резултатите)?
Само декоратора grayscale ли трябва да предадем или всичко от първото домашно + декоратора?
Коя от всичките формули се очаква да ползваме за grayscale (има разлики в резултатите)?
Която желаете. Важното е картинката да е "черно-бяла" в края на краищата.
Виждайки предадените до тук решения, осъзнавам колко е било важно да поясним, че очакваме от вас да предадете само имплементацията на декоратора, без цялото решение на първа задача.
Малко тестове https://gist.github.com/pepincho/35f09118e5b5046c1834.
@Петър, тестовете ти са твърде конкретни и ще покриват една конкретна имплементация.
Например, изображението:
[(0, 0, 255), (0, 255, 0), (0, 0, 255)],
[(255, 0, 0), (0, 0, 255), (0, 255, 0)],
[(0, 255, 0), (0, 255, 0), (255, 0, 0)]]
го оценяваш като черно-бяла само ако резултатът е:
[(85, 85, 85), (85, 85, 85), (85, 85, 85)],
[(85, 85, 85), (85, 85, 85), (85, 85, 85)],
[(85, 85, 85), (85, 85, 85), (85, 85, 85)]]
Аз твърдя, че същото изображение ще се смята за черно-бяло и ако резултатът е:
[(86, 86, 86), (86, 86, 86), (86, 86, 86)],
[(86, 86, 86), (86, 86, 86), (86, 86, 86)],
[(86, 86, 86), (86, 86, 86), (86, 86, 86)]]
Може би някакъв интервал от възможни равни стойности би решил този проблем :)
Добра идея ли е да дефинираме помощна функция в декоратора, използвана от функцията, която връща декоратора или е по-добре помощната функция да е дефинирана извън декоратора?
Предполагам извън, за да не се дефинира всеки път...
Има ли значение дали превръщаме в сиво-бяла картинка аргумента, който приемат функциите или резултата, който връщат
@Десислава, всъщност overhead-а е доста малко така, че няма голямо значение.
Искам да попитам, на тези които им е оцнено като некоректно, защото са ползвали друга формула от тази за средно аритметичното на трите цвята, ще бъдат ли допълнително прегледани, тъй като на мен ми се получават черно-бели картинки и пишеше, че няма значение коя формула ще се ползва, а в крайна сметка е оценено като некоректно.
Написала съм greyscale вместо grayscale и имам неуспешни тестове заради това. Ще го проверите ли с правилното име?
@Ивета
Проблемът може би идва от това, че имаш грешка във функцията при третото get_level.
def made_grayscale(image):
def get_level(r, g, b):
return int(r*0.21 + g*0.71 + b*0.07)
return [[(get_level(x, y, z), get_level(x, y, z),
get_level(x, y, x)) for x, y, z in row] for row in image]
Трите стойности в пиксела трябва да имат еднакви стойности.
@Борис
Ох, изобщо не бях забелязала, мерси :)
И все пак си стават черно-бели :D
И аз съм написал greyscale вместо grayscale и ми гърмят тестовете. Нали уж ръчно щеше да се проверява тази задача, тези тестове имат ли някакво значение в случая?
Аз също съм в тази графа. Прихванахме британски от много Monty Python!
И аз съм написал greyscale вместо grayscale и ми гърмят тестовете.
Лошо.
Нали уж ръчно щеше да се проверява тази задача [..]
Ръчното проверяване се състои в това автоматизирано да се генерират изображения, използвайки вашите декоратори и "на око" да се преценява дали резултатът е черно-бял вариант на аргумента. Причината за това е, че е доста тривиално да се провери дали дадена колекция от пиксели представя черно-бяло изображение с конкретни размери, но е крайно нетривиално да се провери дали това изображение е черно-белият вариант на подадено цветно такова.
[..] тези тестове имат ли някакво значение в случая?
От тези тестове зависи дали получавате точка или не. В случая просто си оставихме вратичка на ръка да маркираме дадено решение за грешно. Просто в това предизвикателство е много лесно да се излъжат автоматизираните тестове с което и да е черно-бяло изображение, със същите размери като подаденото.
В този ред на мисли, съм изключително доволен, че никой не е опитал да прави номера и тази мярка се оказа ненужна :)
Трябва да сте влезли в системата, за да може да отговаряте на теми.