Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.03.01;
Скачать: CL | DM;

Вниз

Как сделать монохромный растр?   Найти похожие ветки 

 
Jeer ©   (2009-01-19 16:01) [40]


> Б   (19.01.09 14:55) [37]
>
> > что задающие вопросы сами порой путаются в терминах
>
> Согласен, только не здесь. (Ух ты - правильно написал (на
> 3 раз)).
> Может некоторые считают, что чёрно-белый растр - эта битовый
> образ в градациях серого (Наверное по старым чёрно-белым
> фотографиям).
> Но я ясно пояснил какой эффект именно мне нужен См. [1].
>
> Для непонятливых См. [35] - тоже самое.


Претензия на раз очень проста и исходит из Вашего начального непонимания, того, что Вам надо  - "Не в градациях серого, а монохромный"
Я Вам пояснил [35], что градации серого, это частный случай монохрома.
Черно-белое - частный случай монохрома-градаций серого при числе оттенков 2.
Еще Вы так и не поняли, что уровень деления на градации 128 - это тоже частный случай и это тоже Вами не было оговорено.

Далее, переход от цветовой схемы RGB к монохрому правильнее делать через предварительный переход к HLB(HLS) схемам.
Не обязательно в полном варианте - можно так:

Для Intensity:
result := (rgbtRed + rgbtGreen + rgbtBlue) div 3
либо с масштабными коэффициентами, учитывающими особенности конкретного люминофора, как и было сказано выше.

Для Lightness:
result := (MinIntValue( [rgbtRed, rgbtGreen, rgbtBlue] ) +
                MaxIntValue( [rgbtRed, rgbtGreen, rgbtBlue] ) ) div 2


 
Amoeba ©   (2009-01-19 16:28) [41]


> учитывающими особенности конкретного люминофора

скорее уж различную чувствительность глаза к разным участкам спектра


 
Б   (2009-01-19 16:46) [42]

2 Jeer

Понятно.
Хотел написать примерно такую формулировку: "Как сделать монохромный растр? Не в градациях серого, а такОЙ (ударение на ОЙ) монохромный, в котором всего 2 цвета - чёрный и белый". (Убрал слово "такой").

Если и так, то всё равно ясно.

> Я Вам пояснил [35], что градации серого, это частный случай монохрома.

Знаю. См. [9]

> 128 - это тоже частный случай и это тоже Вами не было оговорено.

Порог нейтральный, т.к. если, пусть будет 50, то границы в изображении все сотрутся (особенно маллозаметные контуры и штрихи), В итогое - чёрно-белое мессиво точек. Поэтому, условно говоря 128 - золотая середина, самый наилучший вариант и оговаривать его, думаю, не было необходимым.

> правильнее делать через предварительный переход к HLB(HLS) схемам.

Формулу выбрал по стандарту YCbCr.  
А можно взять Вашу формулу, формулу стандарта ITU, CCIR 601-1 (VGA)... и др - есть из чего выбирать.


 
Anatoly Podgoretsky ©   (2009-01-19 16:56) [43]

> Amoeba  (19.01.2009 16:28:41)  [41]

Чувствительность глаза не меняется, а вот люминофоры разные, поэтому существуют цветовые профили и разные формулы. Если выбрать неправильную формулу, то монохромное изображение будет отличаться от оригинала и будет отличаться при выводе на разные носители.


 
Anatoly Podgoretsky ©   (2009-01-19 16:58) [44]

> Б  (19.01.2009 16:46:42)  [42]

Не золотая, приложение вообще то должно иметь возможность менять порог. А сложные приложения еще и аппроксимируют, а не тупо по порогу.


 
Б   (2009-01-19 17:26) [45]

> А сложные приложения еще и аппроксимируют, а не тупо по порогу.

Я же не Фотошоп решил писать. ;) Все эти тости в дальнейшем учту, про порог ясно, а про аппроксимацию нет. Да ладно.


 
Sapersky   (2009-01-19 17:49) [46]

про порог ясно, а про аппроксимацию нет

Floyd-Steinberg dithering?
В качестве примера можно использовать компонент TGifImage, правда, Floyd-Steinberg там не вполне корректный, но всё же качество получается лучше, чем совсем без дизеринга.


 
antonn ©   (2009-01-19 22:37) [47]


> KSergey ©   (19.01.09 15:18) [39]
>
> Вот что занятно: у вопрошающего нашлось куча времени и настроения
> брехаться, но не нашлось не понятно чего, чтобы попытаться
> растолковать ему нужный вопрос этим тупицам.
> А у защитников от чего-то не нашлось чего-то, чтобы на вопрос
> ответить (ну или хотя ыб пояснить для тупиц вокруг).

там чуть выше был дан код с наводкой, потом автор уже придумал сам способ и вероятно реализовал его (написав код самостоятельно либо взяв готовый - велосипедов сделано тьма).

В это время его атакуют вопросами наводящими, вероятно для того, чтобы выгородить себя ("Ах, мон сеньор, вы не так задали вопрос, господа просто вас не поняли! А иначе разве мы бы не помогли сударю? дадада") и заодно потыкать носом автора в то, как сильно он не умеет задавать вопросы (ну это чтобы совсем казалось что он виноват больше).
Баян. Много раз.
Если так хочется помочь - почему бы не уточнить? Уточнить так, как это обычно делается в разделе для начинающих на всех цивилизованных ресурсах. Прочитать предыдущую фразу два раза, чтоб понять то, о чем я.
Нет, ну конечно тут никто ничего не обязан (тоже баян, наверное еще больше чем первый), и можно ограничиться парой символов, "остальное в справке найдет", пожалста. Продолжайте в том же духе.
Короче даже лень вырезать цитаты и оспаривать, смысла нет.

Пользователю "Б" рекомендую обращаться на sources.ru или винград если вопрос не сформулирован так, что половину ответа ты знаешь :)


 
Германн ©   (2009-01-20 00:34) [48]


> Пользователю "Б" рекомендую обращаться на sources.ru или
> винград

Присоединяюсь к рекомендации. На тех форумах уже достаточно много участников, которые данный этап уже благополучно прошли, но ещё не потеряли умение понимать подобные "бессвязные" вопросы. :)
Плюс там есть ещё и несколько "гуру", которые относятся к подобным новичкам и их вопросам достаточно "нежно".
P.S. "нежно" (с) не мой, а именно этих гуру. :)
P.P.S. И в чём-то они правы, черт побери.


 
Б   (2009-01-20 07:10) [49]


> Пользователю "Б" рекомендую обращаться на sources.ru или
> винград если вопрос не сформулирован так, что половину ответа
> ты знаешь :)


Лады. ;)
P.S. Дали небольшой толчёк, вот и написал, как говорится "очередной велосипед", но на его сборке можно многому научиться. ;)


 
KilkennyCat ©   (2009-01-20 09:35) [50]


> > Пользователю "Б" рекомендую обращаться на sources.ru или
> > винград
>


Пользователю "Б" рекомендую не обращаться на форумы, за исключением действительно сложных ситуаций. "Добреньких" на форумах хватает, отвечать будут, но КАКАЯ от этого польза - советовал бы задуматься.


 
KSergey ©   (2009-01-20 11:10) [51]

> antonn ©   (19.01.09 22:37) [47]

А почему бы вам все ж на вопрос автора-то не ответить?


 
Б   (2009-01-20 11:59) [52]

> А почему бы вам все ж на вопрос автора-то не ответить?

Ответили уже давным давно. ;)

>Пользователю "Б" рекомендую не обращаться на форумы, за исключением >действительно сложных ситуаций.

Не... лучше средней сложности или легче, я же учусь. ;)

> но КАКАЯ от этого польза - советовал бы задуматься.

Польза? Хм, действительно какая? ;)


 
antonn ©   (2009-01-20 13:35) [53]


> KSergey ©   (20.01.09 11:10) [51]
>
> > antonn ©   (19.01.09 22:37) [47]
>
> А почему бы вам все ж на вопрос автора-то не ответить?

потому что вопрос решен.
и тему от начала можно почитать.


 
antonn ©   (2009-01-20 13:43) [54]

еще один древнющий баян:
procedure PrepareBitmap2colorWithPorog(_B_out:Tbitmap; color1,color2:Tcolor; _persent_level:integer);
var x, y: Integer; RowOut: PRGBArray;
  rc1, bc1, gc1,rc2, bc2, gc2:integer;
begin
 _B_out.PixelFormat:=pf24bit; //óáðàòü, åñëè èçíà÷àëüíî ýòîò ôîðìàò
 rc1:=GetRValue(color1); gc1:=GetGValue(color1); bc1:=GetBValue(color1);
 rc2:=GetRValue(color2); gc2:=GetGValue(color2); bc2:=GetBValue(color2);
 for y:=0 to _B_out.Height-1 do begin
    RowOut:= _B_out.ScanLine[y];
   for x:=0 to _B_out.Width-1 do begin
      if ((RowOut[x].rgbtRed+RowOut[x].rgbtGreen+RowOut[x].rgbtBlue)/3)>(_persent_level/3) then begin
         RowOut[x].rgbtRed:=rc1;
         RowOut[x].rgbtGreen:=gc1;
         RowOut[x].rgbtBlue:=bc1; end else begin
         RowOut[x].rgbtRed:=rc2;
         RowOut[x].rgbtGreen:=gc2;
         RowOut[x].rgbtBlue:=bc2;
      end;
   end;
 end
end;


вместо среднего арифметического запросто подставляется другая формула



Страницы: 1 2 вся ветка

Текущий архив: 2009.03.01;
Скачать: CL | DM;

Наверх




Память: 0.56 MB
Время: 0.007 c
4-1205939486
Vask
2008-03-19 18:11
2009.03.01
Как настроить рабочий стол через Delphi?


15-1230819583
Tinx
2009-01-01 17:19
2009.03.01
Восстановление забытого пароля для DBISAM


2-1232132953
programmer90
2009-01-16 22:09
2009.03.01
Ссылка...


15-1230653448
Kerk
2008-12-30 19:10
2009.03.01
Медиа-библиотека


15-1231024327
Германн
2009-01-04 02:12
2009.03.01
Переустановка ОС





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский