Создание изображения только в оттенках серого - PullRequest
0 голосов
/ 29 декабря 2018

Я писал программу, которая скремблирует цвета каждого пикселя в изображении так, чтобы полученное изображение было очень шумным и трудно распознать, но чтобы оно было нормальным в оттенках серого.

Как толькоЯ написал программу, я заметил проблему.Используемый мной алогритм предполагал, что способ вычисления шкалы яркости был примерно таким:

Grayscale(Pixel p) {
    average := (p.red + p.green + p.blue) / 3
    p.red := p.green := p.blue := average;
}

. Позже я понял, что к числам привязаны веса:

Grayscale(Pixel p) {
    average := (c1 * p.red^gamma) + (c2 * p.green^gamma) + (c3 * p.blue^gamma)
    p.red := p.green := p.blue := average
}

, и поэтому моя программа неработа.

Я специально нацелился на фильтр градаций серого iOS, хотя алгоритм должен быть одинаковым для любой системы.

(примечание: я не знаю веса значений iOS,так что если бы кто-нибудь мог дать мне те же алгоритмы, это было бы здорово. Я нашел эту ветку, обсуждающую подобную проблему, но она не отвечает на мой вопрос: https://www.reddit.com/r/compsci/comments/a1yrf1/what_algorithm_do_ios_devices_use_to_grayscale/)

Предполагая, что в градациях серого используются весы определенного типа, какой алгоритм я мог бы использовать для изменения значений rgb данного пикселя, сохраняя при этом значения градаций серого в пикселях одинаковыми?

...