Цифровая обработка изображений: эксперимент 5: кодирование и сжатие изображений

Эксперимент 5. Кодирование и сжатие изображения

В изображении содержится много видов избыточной информации, включая избыточность кодирования, межпиксельную избыточность, психовизуальную избыточность и т. д. Сокращая избыточную информацию в изображении, можно уменьшить объем данных изображения для достижения цели изображения. сжатие. Существует множество методов кодирования и сжатия изображений, которые можно разделить на сжатие с кодированием с потерями и сжатие с кодированием без потерь с точки зрения объема информации.Сжатие с кодированием с потерями обеспечивает высокую степень сжатия за счет качества изображения.

1. Цель эксперимента

  1. Дальнейшее освоение метода программирования MATLAB;
  2. Закрепить теорию и метод кодирования со сжатием изображений;
  3. Углубить понимание преобразования изображения DCT;
  4. Программа для реализации сжатия изображений и сравнения степени сжатия изображений до и после сжатия.

2. Экспериментальная база

Основной целью кодирования и сжатия изображения является экономия места для хранения и повышение скорости передачи.Декодированное изображение строго совпадает с изображением до сжатия.Сжатие без потери качества изображения называется сжатием без потерь.Сжатие без потерь не может обеспечить высокую степень сжатия . Декодированные изображения и исходное изображение отличаются, и допускается определенное искажение. Этот вид сжатия называется сжатием с потерями. Высокая степень сжатия достигается за счет качества изображения. Метод сжатия заключается в повторном кодировании изображения в надежде использовать меньше дерева. Основной метод фазово-эффективного кодирования таблицы данных состоит в том, чтобы максимально удалить избыточные компоненты в изображении, чтобы наименьший символ содержал самую большую информацию об изображении.
Этот эксперимент иллюстрирует кодирование и сжатие изображений с помощью дискретного косинусного преобразования. Преобразование DTC имеет то преимущество, что концентрирует энергию сильно коррелированных данных.После преобразования DTC энергия матрицы концентрируется в верхнем левом углу матрицы, а большинство значений коэффициента DTC в нижнем правый угол близки к нулю.Для обычных изображений эти близкие к нулю коэффициенты DTC отбрасываются.Значение не вызывает существенного снижения качества изображения восстановленного изображения, поэтому оно выполняется с использованием преобразования DTC. Сжатие изображения может сэкономить много места для хранения, и сжатие должно использовать преобразование с наименьшим коэффициентом в наиболее разумном приближении к исходному изображению. Количество используемых коэффициентов также определяет размер коэффициента сжатия.
Связанными функциями в MATLAB являются:
dct2: двумерное дискретное косинусное преобразование.
Idct2: Двумерное обратное дискретное косинусное преобразование.
dctmtx: рассчитать матрицу преобразования DTC.
blkproc: блокировать обработку изображений.

3. Экспериментальные приборы и оборудование

Компьютер, программное обеспечение для обработки изображений Matlab, изображение для обработки

4. Экспериментальное содержание и этапы

  1. Знаком с использованием связанных функций в MATLAB
    (1) dct2: двумерное дискретное косинусное преобразование.
语法
B=dct2(A)
B=dct2(A,m,n)
B=dct2(A,[m,n])
描述
B=dct2(A)返回A的二维离散余弦变换。矩阵B和A的大小一样,并包含离散余弦变换系数
B=dct2(A,m,n)是在变换以前用0对矩阵A进行填充,填充到m*n的大小。如果m或者n比A相应的小,dct2会将A缩短。
B=dct2(A,[m,n])同上面一样。

help dct
dct Дискретное косинусное преобразование.
Y = dct(X) возвращает дискретное косинусное преобразование вектора X.
Если X является матрицей, операция dct применяется к каждому
столбцу. Для массивов ND dct работает с первым неодноэлементным
измерением. Это преобразование можно инвертировать с помощью IDCT.

Y = dct(X,N) pads or truncates the vector X to length N 
before transforming.

Y = dct(X,[],DIM) or Y = dct(X,N,DIM) applies the dct operation along
dimension DIM.
Y = dct(...,'Type',K) specifies the type of discrete cosine transform
to compute.  K can be one of 1, 2, 3, or 4, to represent the dct-I,
dct-II, dct-III, and dct-IV transforms, respectively.  The default
value for K is 2 (the dct-II transform).

(2) Idct2: Двумерное обратное дискретное косинусное преобразование.

help idct2
idct2 Двумерное обратное дискретное косинусное преобразование.
B = idct2(A) возвращает двумерное обратное дискретное
косинусное преобразование A.

B = idct2(A,[M N]) or B = idct2(A,M,N) pads A with zeros (or
truncates A) to create a matrix of size M-by-N before
transforming. 

For any A, idct2(DCT2(A)) equals A to within roundoff error.

The discrete cosine transform is often used for image
compression applications.

(3) dctmtx: рассчитать матрицу преобразования DTC.

help dtcmtx
dctmtx Матрица дискретного косинусного преобразования.
D = dctmtx(N) возвращает матрицу преобразования DCT размером N на N. D*A
— это DCT столбцов A, а D'*A — обратное DCT
столбцов A (когда A — N-by-N).

If A is square, the two-dimensional DCT of A can be computed
as D*A*D'. This computation is sometimes faster than using
DCT2, especially if you are computing large number of small
DCT's, because D needs to be determined only once.

(4) blkproc: обрабатывать изображение блоками.

help blkproc
blkproc Обработка отдельного блока для изображения.

blkproc is not recommended.  Use BLOCKPROC instead.

B = blkproc(A,[M N],FUN) processes the image A by applying the function
FUN to each distinct M-by-N block of A, padding A with zeros if
necessary.  FUN is a FUNCTION_HANDLE that accepts an M-by-N matrix, X,
and returns a matrix, vector, or scalar Y:

    Y = FUN(X)

blkproc does not require that Y be the same size as X.  However, B is
the same size as A only if Y is the same size as X.

2. Используйте преобразование DCT для выполнения простого преобразования изображения.После
преобразования изображения с помощью DCT его низкочастотные компоненты концентрируются в левом верхнем углу, а высокочастотные компоненты распределяются в правом нижнем углу.
(1) Преобразование ДКП
вставьте сюда описание изображения
вставьте сюда описание изображения

Рисунок 1 Дискретное косинусное преобразование
(2) Преобразование блочной матрицы DCT
вставьте сюда описание изображения

вставьте сюда описание изображения

Рис. 2 Диаграмма дискретного косинусного преобразования

思考:压缩后的图像数据量减少,图像高频信息丢失,图像边缘较为模糊,图像变得不清晰。
压缩比:(7.0404-7.0115)/ 7.0404=0.4%

5. Экспериментальный опыт

1. Изучил два метода сжатия данных с использованием функции дискретного косинуса.
2. Прежде чем изображение будет сжато, его необходимо соответствующим образом преобразовать, например нормализовать, преобразовать в оттенки серого и выполнить другие действия по обработке.
3. Прописные и строчные буквы в алгоритме сжатия подобласти должны быть правильными.

Guess you like

Origin blog.csdn.net/chengzilhc/article/details/124556752