Автор: Пользователь скрыл имя, 03 Декабря 2012 в 14:02, лабораторная работа
Информация всегда передается в виде сообщений разной формы (примеры: музыка, устная речь, письмо). Сообщение передается от источника к получателю посредством некоторой среды, являющейся каналом связи
Для устной речи канал связи – воздух, в котором распространяются волны. Т.е. для передачи сообщения всегда требуется некоторая материальная субстанция - носитель информации.
Министерство образования и науки Российской Федерации
Федеральное агентство по образованию
Марийский государственный технический университет
Кафедра информатики
и системного программирования
Расчетно-графическая работа
по дисциплине «Информатика» на тему:
«Аналого-цифровое преобразование»
Выполнил:
студент ПС-12
Аннаев Аннагелди
Проверил:
преподаватель кафедры ИиСП
Лаптева Наталия Николаевна
Йошкар-Ола
2010
Краткое изложение теории
Информация всегда передается в виде сообщений разной формы (примеры: музыка, устная речь, письмо). Сообщение передается от источника к получателю посредством некоторой среды, являющейся каналом связи
Для устной речи канал связи – воздух, в котором распространяются волны. Т.е. для передачи сообщения всегда требуется некоторая материальная субстанция - носитель информации.
Сообщение, передаваемое с помощью носителя информации – сигнал.
Получение цифрового
сигнала:
дискретизация
Получение цифрового сигнала:
дискретизация
Входной файл:
Выходные файлы:
Изображение с шагом квантования 18 изображение с шагом квантования 6
Черно-белое
Вывод
Программа производит модификации исходного файла, создавай результирующие файлы уже с измененными данными, программа производит работу с уровнем квантования 18, также создает 3 результирующие файла, с уровнем квантования 6, с оттенком серого, а так же черно белого.
Программа написанная на языке Cи работает верно.
Листинг кода в приложении
#include "stdafx.h"
#include <stdlib.h>
#include "math.h"
int main(int argc, char* argv[])
{
FILE *fp_raw, *fp_gray, *fp_black;
FILE *fp_shag_15, *fp_shag_51;
unsigned char R, G, B;
float R1, G1, B1, R2, G2, B2, R3, G3, B3, R4, G4, B4, x;
if((fp_raw = fopen("test.raw", "rb")) == NULL)
{
printf("Error open file.\n");
exit(1);
}
fp_gray = fopen("gray.raw", "wb");
fp_black = fopen("black.raw", "wb");
fp_shag_15 = fopen("shag 15.raw", "wb");
fp_shag_51 = fopen("shag 51.raw", "wb");
while(!feof(fp_raw))
{
R = getc(fp_raw);
G = getc(fp_raw);
B = getc(fp_raw);
R1 = G1 = B1 = 0.11*B+0.3*R+0.59*G;
putc(R1, fp_gray);
putc(G1, fp_gray);
putc(B1, fp_gray);
x = 0.11*B+0.3*R+0.59*G;
if (x > 127)
{
R2 = G2 = B2 = 255;
putc(R2, fp_black);
putc(G2, fp_black);
putc(B2, fp_black);
}
else
{
R2 = G2 = B2 = 0;
putc(R2, fp_black);
putc(G2, fp_black);
putc(B2, fp_black);
}
R3 = (R + 7.5) - fmod(R + 7.5, 15);
G3 = (G + 7.5) - fmod(G + 7.5, 15);
B3 = (B + 7.5) - fmod(B + 7.5, 15);
putc(R3, fp_shag_15);
putc(G3, fp_shag_15);
putc(B3, fp_shag_15);
R4 = (R + 25.5) - fmod(R + 25.5, 51);
G4 = (G + 25.5) - fmod(G + 25.5, 51);
B4 = (B + 25.5) - fmod(B + 25.5, 51);
putc(R4, fp_shag_51);
putc(G4, fp_shag_51);
putc(B4, fp_shag_51);
}
fclose(fp_raw);
fclose(fp_gray);
fclose(fp_black);
fclose(fp_shag_15);
fclose(fp_shag_51);
return 0;
}