Я не хотів нової теми, тому редагую. Я вже писав фільтрацію сканування + виявлення фігури (це просто математика, для цього не потрібно вміти багато програмувати), але я не писав двійковий файл у своєму житті. Завжди лише TXT. Не картинка. Мені слід якось сфотографувати з цього. з даних рівно однієї області пам'яті. Але це не важливо. Ну, справа в тому, як я можу помістити його в двійковий файл із C ++. (точно стиснення bmp bmp 0).

слід

З цього все почалося:
Здравствуйте.

В ході своєї роботи я наткнувся на те, що мені доводиться брати bmp-зображення в пікселі і виявляти на них кластер (я давно писав алгоритм кластеризації, але він працює з даних txt, а не з bmp), Єдина проблема полягає в тому, як обробити BMP можна вирішити. ми повинні взяти координати x, y даної точки із зображення + нам потрібне число, яке є сумою rgbs, і ми закінчили. Я не знаю, як розпочати, бо я цього ще не робив.

Заздалегідь дякую усім. Поки що я писав там лише числові математичні завдання, мені не доводилось. О, вибачте, я не програміст. (Я б був "фізиком штучного коханця".):-). Хороший документ-два - це теж добре.

Коментарі

(Joejszaka v | 23.01.2008, ср - 15:26)

Є багато способів. Якщо ви пишете звичайну консольну програму (я так думаю), я пропоную таке:

Це хороший маленький клас відображення/обробки зображень. BMP в основному виходить з кишечника і, крім того, дає цілий корисний клас представлення зображень.

(Люди | 23.01.2008, ср - 15:33)

Відповісти Joejszaka Є багато способів. Якщо ви згладите своє повідомлення

Дуже дякую, хоча я пишу базовою мовою C, а не cpp.
В іншому випадку він буде дуже консольним. у будь-якому випадку, вихідним даним потрібні лише елементи управління.

(люди | 23.01.2008, середа - 16:12)

Відповісти Joejszaka Є багато способів. Якщо ви згладите своє повідомлення

Це не буде чудовою заслугою в C. Я знайшов опис структури bmp. заголовок містить те, що слід після потоку rgb.

(apal v | 2008. 01. 28., год - 18:44)

Ви також можете переглянути формат pnm (ppm, pgm, залежно від програми). Ви можете прочитати в пам'яті Gyk 1: 1. Ви можете використовувати команду `bmptopnm`, щоб зробити pnm з існуючого формату" bmp (або що завгодно) ", а` ppmtopgm` виконає перетворення відтінку rgb -> pitch. Насправді pnm має гладку форму ascii, якщо ви це зробите легше сканувати (наприклад, звичайний * scanf () fvs) Прочитайте: man 5 pnm, man 5 pgm.

(люди | 02.02.2008, год - 15:01)

Це приємно. Я вже вирішив bmp зі стисненням, скажімо, 0, але я також розгляну їх. Дякую.

(tr3w v | 2008. 01. 28., год - 19:03)

Я не думаю, що вам слід заважати йому писати зчитувач BMP, оскільки з одного боку це непотрібно, а з іншого боку, що трапляється, коли трапляється більш екзотичний bmp? (RLE, інша глибина кольору тощо)

Вам потрібна бібліотека зображення для C.

У другому прикладі ви маєте про все необхідне.

". передача C ++ пересічному програмісту здається приблизно порівнянною з передачею завантаженого .45 шимпанзе."
-- Тед Цьо

(люди | 05.02.2008, k - 11:00)

(apal v | 05.02.2008, k - 11:13)

PNM легко "видалити":

потік es та/або stdout відкривається за допомогою fopen (), а outimg - це гробниця без підпису char [sy] [3 * sx] ", якщо ke'p me'rete sx * sy. розмір 3 * sx * sy + keve's Це зображення є кольоровим, компоненти r, G та B є безперервними у могилі, у такому порядку кожен беззнаковий тип символу, номер 0-255.

Якщо fw = stdout, то ваша програма | Ви також можете робити BMP за допомогою трубопроводу pnmtobmp (та будь-якої іншої щогли).

Я думаю, що C ++ є дріб'язковим для вищезазначеного.

Редагувати: чорно-біле також можна видалити, у цьому випадку надпис char без символу [sy] [sx], fwrite - це лише sx, пише 1 байт, а P5 повинен бути P5 у першому рядку замість P6.

(люди | 05.02.2008, k - 11:15)

Тоді це буде pnm. Дякую за красу. Якщо я можу переписати вищезазначене на c ++, ще раз дякую.