Я пишу программу на C#, но надеюсь, что C++ и C# в фоновом режиме точно так же. Что я хочу - возьму серое изображение и отдельные цвета над 127 и под 17 для разделения изображений. Если я просто получить «белый» цвет и программным образом растянуть их из диапазона (127-255) до (0-255), какImageMagick - Установить уровни для изображения в градациях серого
// pseudocode
int min = 127, max = 255;
for(int x; x< width; x++)
pixels[x] = pixels[x]/(max-min) * max;
Тогда здесь будет не гладкий промежуток .. Я имею в виду, что 127 преобразуется в 0 но 128 конвертирует до 2 и цветов 1,3,5, ... не существует.
То есть исходное изображение с альфа: image original
То есть изображение с «экстрагируют белый»: image original
То есть изображение с «черным» извлеченной: snorgg.ru/patchwork/tst_black.png.
Я не ясно понять, как он может быть реализован так exampe код понравится:
{
im.MagickImage image = new im.MagickImage("c:/55/11.png");
im.MagickImage imageWhite = ExtractWhite(image);
im.MagickImage imageBlack = ExtractBlack(image);
}
....
public static im.MagickImage ExtractWhite(im.MagickImage img){
im.MagickImage result = new im.MagickImage(img);
?????
?????
return result;
}
thankы заранее))
Я нахожу ваш вопрос трудно понять. Если вы начинаете с одного изображения, имеющего 1 максимум iuxel и ширину 256 пикселей, первый пиксель равен 0, а затем 1, 2, 3 ... 255, сколько выходных изображений будет и что будет в каждом? –
@Mark Setchell, будет два изображения. Если «середина серая» справа в середине, то: сначала «0,0, 2, 2, 4, 4, ... 255, 255'. И то же самое - '0,0, 2, 2, 4, 4, ... 255, 255'. Если «середина серого» в 1/4 от 255 (между четвертью и другими кварталами), то: «Первые» 0,0, 0, 0, 4, 4, 4, 4, ... 255, 255'. И далее - '0,1, 2, 2, 4, 5,6,6, 8, ... 254, 255'. Из-за попытки растянуть 0..63 до 0..255. – user3444737