Форум программистов, компьютерный форум, киберфорум
Delphi для начинающих
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
0 / 0 / 1
Регистрация: 01.11.2012
Сообщений: 29
1

Черно-белое изображение -> изображение в цвете

09.11.2012, 22:27. Показов 2470. Ответов 24
Метки нет (Все метки)

Я загружаю чб изображение :
Код Delphi
Delphi
1
2
3
4
5
procedure TForm1.Button1Click(Sender: TObject);
begin
if OpenPictureDialog1.Execute then
Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
END;
Как сделать его, к примеру, желтым (т.е. все, что было чб должно поменять цвет на желтый)? Спасибо
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
09.11.2012, 22:27
Ответы с готовыми решениями:

Черно-белое изображение
Здравствуйте, возникла проблема создание сегментированного изображения.... Нашёл код для...

Opencv черно-белое изображение
Считываю изображение - перевожу его в черное-белое, вывожу в label, а оно странно отображается,...

Цветное изображение -> черно-белое
как правильно сформировать матрицу яркости изображения и записать его в файл? что бы получить чб...

Перевести изображение в чёрно-белое
Имеется QImage изображение которое необходимо сделать чёрно-белым. С помощью формул получалось...

24
2474 / 1850 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
09.11.2012, 23:07 2
К примеру, привести к pf24bit и пройтись ScanLine-ом, меняя R, G на $FF.
P.S. и не нужно плодить темы.
0
0 / 0 / 1
Регистрация: 01.11.2012
Сообщений: 29
09.11.2012, 23:12  [ТС] 3
что такое pf24bit, пройтись сканлайном тоже не очень ясно?
0
2474 / 1850 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
10.11.2012, 00:01 4
Для битмапа
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
procedure TForm1.Button1Click(Sender: TObject);
var
  I, J : Integer;
  Scan : PRGBTripleArray;
begin
  if OpenPictureDialog1.Execute then
  begin
    Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
    Image1.Picture.Bitmap.PixelFormat := pf24bit;
    for I := 0 to Image1.Picture.Bitmap.Height - 1 do
    begin
      Scan := Image1.Picture.Bitmap.ScanLine[I];
      for J := 0 to Image1.Picture.Bitmap.Width - 1 do
      begin
        Scan[J].rgbtBlue  := 0;
        Scan[J].rgbtGreen := 255;
        Scan[J].rgbtRed   := 255;
      end;
    end;
  end;
end;
Добавлено через 6 минут
Забыл проверку вставить
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
procedure TForm1.Button1Click(Sender: TObject);
var
  I, J : Integer;
  Scan : PRGBTripleArray;
begin
  if OpenPictureDialog1.Execute then
  begin
    Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
    Image1.Picture.Bitmap.PixelFormat := pf24bit;
    for I := 0 to Image1.Picture.Bitmap.Height - 1 do
    begin
      Scan := Image1.Picture.Bitmap.ScanLine[I];
      for J := 0 to Image1.Picture.Bitmap.Width - 1 do
      begin
        if (Scan[J].rgbtBlue = 0) and (Scan[J].rgbtGreen = 0) and (Scan[J].rgbtRed = 0) then
        begin
          Scan[J].rgbtBlue  := 0;
          Scan[J].rgbtGreen := 255;
          Scan[J].rgbtRed   := 255;
        end;
      end;
    end;
  end;
end;
1
0 / 0 / 1
Регистрация: 01.11.2012
Сообщений: 29
10.11.2012, 00:05  [ТС] 5
Спасибо! А почему программа не читает PRGBTripleArray, показывает ошибку Undeclared identifier?
0
2474 / 1850 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
10.11.2012, 00:11 6
Вот он
Delphi
1
2
3
type
  TRGBTripleArray = array[0..1023] of TRGBTriple;
  PRGBTripleArray = ^TRGBTripleArray;
1
0 / 0 / 1
Регистрация: 01.11.2012
Сообщений: 29
10.11.2012, 00:27  [ТС] 7
А как белый цвет будет? если по rgbt?
0
2474 / 1850 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
10.11.2012, 00:30 8
Все выставить в 255 ($FF).
Delphi
1
2
3
  Scan[J].rgbtBlue  := 255;
  Scan[J].rgbtGreen := 255;
  Scan[J].rgbtRed   := 255;
1
0 / 0 / 1
Регистрация: 01.11.2012
Сообщений: 29
10.11.2012, 01:22  [ТС] 9
Вот у нас есть три разных images, одинаковых по размеру, на 1ом - красный слой, на 2ом- желтый, на 3ем - синий, вы не знаете, как совместить их в одно изображение - цветное, на котором были бы отображены все три слоя?спасибо
0
2474 / 1850 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
10.11.2012, 01:27 10
Скинь картинки в архиве.
0
0 / 0 / 1
Регистрация: 01.11.2012
Сообщений: 29
10.11.2012, 01:46  [ТС] 11
У меня не грузит больше 70 проц(( Можно на любых чб, без разницы какие, у иеня bmp - это растры
0
2474 / 1850 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
10.11.2012, 01:56 12
Что значит не грузит? Большие файлы? Найди куда скинуть или преобразуй в PNG.
0
0 / 0 / 1
Регистрация: 01.11.2012
Сообщений: 29
10.11.2012, 02:39  [ТС] 13
http://www.compress.ru/Archive... /52/48.jpg http://geosfera.ucoz.org/_ph/31/2/275687118.jpg
Ну эта карта тоже подойдет наверно

Добавлено через 3 минуты
Поменяется на такое, наверно..?
Delphi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
begin
  if OpenPictureDialog1.Execute then
  begin
    Image1.Picture.LoadFromFile(OpenPictureDialog1.FileName);
    Image1.Picture.Bitmap.PixelFormat := pf24bit;
    for I := 0 to Image1.Picture.Bitmap.Height - 1 do
    begin
      Scan := Image1.Picture.Bitmap.ScanLine[I];
      for J := 0 to Image1.Picture.Bitmap.Width - 1 do
      begin
      if  (Scan[J].rgbtBlue  <> 255) and (Scan[J].rgbtGreen <> 255)
      and(Scan[J].rgbtRed  <> 255) then
          begin
          Scan[J].rgbtBlue  := 0;
          Scan[J].rgbtGreen := 255;
          Scan[J].rgbtRed   := 255;
0
2474 / 1850 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
10.11.2012, 03:19 14
Так пойдёт
1
Вложения
Тип файла: rar prj37.rar (19.0 Кб, 12 просмотров)
4085 / 1799 / 211
Регистрация: 06.10.2010
Сообщений: 4,029
10.11.2012, 09:44 15
Можно через BitBlt
2
Вложения
Тип файла: rar MERGECOPY.rar (18.7 Кб, 34 просмотров)
0 / 0 / 1
Регистрация: 01.11.2012
Сообщений: 29
10.11.2012, 23:59  [ТС] 16
Cпасибо, пытаюсь разобраться) Open dialog отсутствует?

Добавлено через 34 минуты
Вообще не очень понятно как это работает.. Какая главная идея, если на словах, как происходит комбинирование нового изображения из кусков двух? спасибо
0
2474 / 1850 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
11.11.2012, 00:05 17
О чём вообще речь, о чьём примере?
0
0 / 0 / 1
Регистрация: 01.11.2012
Сообщений: 29
11.11.2012, 00:16  [ТС] 18
О вашем! У меня он не работает, но не в этом суть, просто хочу разобраться, какая идея, сначала первая картинка "красится" в 1ый цвет, 2ая - во 2ой, а за счет какой "функции" происходит совмещение изображений в одно? Что такое dest?
0
2474 / 1850 / 242
Регистрация: 14.09.2012
Сообщений: 5,981
Записей в блоге: 2
11.11.2012, 00:30 19
Почему не работает, работает.
2-я картинка первоначально дублирует первую.
1
Миниатюры
Черно-белое изображение -> изображение в цвете  
0 / 0 / 1
Регистрация: 01.11.2012
Сообщений: 29
11.11.2012, 00:43  [ТС] 20
Ну это-то даа, спасибо! Но моя задача в другом : у меня есть три ч.б. растровых снимка, на первом изображен 1ин кусок какого-то берега, на втором - другой, на третьем - третий. Программа должна тот кусок, кот. на 1ом разукрасить в желтый, кусок со второго снимка - в красный, с 3его снимка часть - в зеленый, в итоге выдать это все в 1ом изображении, которое будет как бы цветным - триколор. Вот моя задача..Как разукрасить один снимок с помощью скана и битмапа я разобралась, но как это сделать с другими двумя и получить итоговый триколор вообще не имею понятия??
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
11.11.2012, 00:43

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Черно-белое изображение на цветном ТВ
Вообщем дело в том, что есть телевизор плазма какая то, сам цветной , но все устройства которые...

StretchBLT Рисует черно-белое изображение
Кто Знает почему SrtetchBlt рисует в ПикБоксе черно-белым? Например Private Sub Picture1_Paint()...

Как преобразовать изображение в черно белое?
Как преобразовать изображение из цветного в черно белое?

Черно-белое изображение в одномерный массив
Подскажите как преобразовать изображение 256х256х8. В одномерный массив?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.