Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "stdafx.h"
- #include <opencv2/imgproc/imgproc.hpp> // Gaussian Blur
- #include <opencv2/core/core.hpp> // Basic OpenCV structures (cv::Mat, Scalar)
- #include <opencv2/highgui/highgui.hpp>
- #include <stdio.h>
- #include <math.h>
- #include <iostream>
- #define PI (3.141592653589793)
- using namespace std;
- using namespace cv;
- int _tmain(int argc, _TCHAR* argv[])
- {
- // Stworzenie okna w którym przechwycone obrazy będą wyświetlane
- cvNamedWindow("JPEG", CV_WINDOW_AUTOSIZE);
- // Pobranie obrazu
- Mat imageFruits = imread("fruits2.jpg",CV_LOAD_IMAGE_GRAYSCALE);
- // Uzyskanie macierzy pikseli na podstawie obiektów Mat
- Mat_<uchar> fruitsPixels = imageFruits;
- const int blockCols = 320/8;
- const int blockRows = 240/8;
- // Utworzenie bloków przechowujących odpowiednio: oryginalny obraz, obraz po DCT, obraz po IDCT
- float block[blockRows][blockCols][8][8];
- float blockDCT[blockRows][blockCols][8][8];
- float blockIDCT[blockRows][blockCols][8][8];
- // TODO
- for (int i=0; i<blockRows; i++) {
- for (int j=0; j<blockCols; j++) {
- for (int k=0; k<8; k++) {
- for (int l=0; l<8; l++) {
- block[i][j][k][l] = fruitsPixels[i*8+k][j*8+l];
- // podział obrazu na bloki
- // DLA MNIE: wydobycie wartości dla odpowiedniego bloku, początek danych dla bloku + przesunięcie
- blockDCT[i][j][k][l] = 0;
- blockIDCT[i][j][k][l] = 0;
- // zerowanie blockDCT i blockIDCT
- }
- }
- }
- }
- /*for (int k=0; k<8; k++) {
- for (int l=0; l<8; l++) {
- block[0][0][k][l] = 0;
- //wyzerowanie jednego bloku
- }
- }
- for (int i=0; i<blockRows; i++) {
- for (int j=0; j<blockCols; j++) {
- for (int k=0; k<8; k++) {
- for (int l=0; l<8; l++) {
- fruitsPixels[i*8+k][j*8+l] = block [i][j][k][l];
- // składanie bloków
- }
- }
- }
- }*/
- // Wyświetlenie obrazu
- //imshow("JPEG", imageFruits);
- imshow("JPEG", fruitsPixels);
- // Oczekiwanie na wciśnięcie klawisza Esc lub Enter
- char key;
- do key = cvWaitKey(1);
- while(key != 27 && key != 13);
- // Niszczenie okna
- cvDestroyWindow("JPEG");
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement