Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Массив из изображения

24K
19 апреля 2007 года
darkarchon
9 / / 14.04.2007
Суть проблемы следующая, нужно получить массив значений из цветного изображения. Значения должны быть типа 0-1, тоесть чёрный или белый.
273
20 апреля 2007 года
3A3-968M
1.2K / / 22.12.2005
Как так?? Цветное изображение содержит не только чёрный и белый. Или тебе нужно получить из цветного чёрно-белое изображение??
24K
22 апреля 2007 года
darkarchon
9 / / 14.04.2007
Цитата: 3A3-968M
Как так?? Цветное изображение содержит не только чёрный и белый. Или тебе нужно получить из цветного чёрно-белое изображение??


Нужно из цветного получить чёрно-белое, и загнать его в массив.

16K
22 апреля 2007 года
homeric
39 / / 13.02.2007
Код:
//using System.Drawing;
/* picture - источник*/
Bitmap bitmap = new Bitmap(picture.Width,picture.Height);
const Single R_coeff = 0.3;
const Single G_coeff = 0.59;
const Single B_coeff = 0.11;
for(Int32 y=0;y<bitmap.Height;y++)
for(Int32 x=0;x<bitmap.Width;x++)
{
      Color color=picture.GetPixel(x,y);
      Int32 gray = Convert.ToInt32(color.R*R_coeff+color.G*G_coeff+color.B*B_coeff);
      bitmap.SetPixel(x,y,Color.FromArgb(gray,gray,gray));
}
MemoryStream stream = new MemoryStream();
bitmap.Save(stream, ImageFormat.Jpeg);
Int32 lenth = Convert.ToInt32(stream.Length);
Byte[] bite_array = new Byte[lenth];
stream.Read(bite_array, 0, lenth);
16K
22 апреля 2007 года
homeric
39 / / 13.02.2007
Далее:

Код:
for (Int32 i=0; i<lenth; i++)
if (bite_array>128) bite_array=255;
else bite_array=0;
MemoryStream out_stream= new MemoryStream();
out_stream.Write(bite_array,0,lenth);
Bitmap out_bitmap= new Bitmap(out_stream);
//******************************************
out_lenth=lenth/3;
Byte[] out_bite= new Byte[out_lenth];
for(Int32 i=0; i<out_lenth; i++)
if (bite_array[3*i] == 255) out_bite=1;
else out_bite=0;


Ток оптимизируй ужж как нить сам...
За то что эт работает не отвечаю- но поправить не проблема....если есть ошибки...
16K
22 апреля 2007 года
homeric
39 / / 13.02.2007
 
Код:
//******************************************
out_lenth=lenth/3;
Boolean[] out_bite= new Boolean[out_lenth];
for(Int32 i=0; i<out_lenth; i++)
if (bite_array[3*i] == 255) out_bite=true;
else out_bite=false;


Выражался б яснее чо требуеться.....а вдруг у тя начальная картинка индексная- тогда я зря всё эта катал....
24K
23 апреля 2007 года
darkarchon
9 / / 14.04.2007
Спасибо большое )))
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог