DSP Lab. Week 3 My image Doug Young Suh Media Lab. Rm401 suh@khu.ac.kr Last update : September 9, 2015
MediaLab , Kyunghee University Image format 영상은 unsigned char *에 저장한다. 1 byte: 0~255(black~white) W: width, H: height Raw unsigned char *R, *G, *B; R = new unsigned char[W*H]; G = new unsigned char[W*H]; B = new unsigned char[W*H]; YUV unsigned char *Y, *U, *V; Y = new unsigned char[W*H]; U = new unsigned char[W*H/4]; V = new unsigned char[W*H/4]; Raw 또는 YUV 동영상 연속적으로 저장하면 된다. U V U-128 V-128 2018-12-26 MediaLab , Kyunghee University
MediaLab , Kyunghee University Binary file 입출력 #include <stdio.h> 바이너리 파일 읽기: 우선 int가 10000개 저장되어있는 파일 "aaa.xxx"를 읽어서 array A에 저장하는 프로그램이다. FILE *bb; int A[10000]; bb = fopen("aaa.xxx","rb"); // 실패하면 NULL을 리턴함 fread(bb,10000,sizeof(int),A); // 성공하면 10000을 리턴함 fclose(bb); 바이너리 파일 쓰기: int가 10000개 저장되어있는 A에서 뒤의 5000개를 파일 "bbb.yuv"에 저장하고 연이어, B에서 5000개를 넣는다. unsigned char R[10000], G[10000],B[10000]; ---- R, G, B에 값을 넣는 부분 ---- bb = fopen("bbb.rgb","wb"); // 실패하면 NULL을 리턴함 fwrite(bb,10000,sizeof(char),R); // 성공하면 10000을 리턴함 fwrite(bb,10000,sizeof(char),G); // 성공하면 10000을 리턴함 fwrite(bb,10000,sizeof(char),B); // 성공하면 10000을 리턴함 2018-12-26 MediaLab , Kyunghee University
MediaLab , Kyunghee University YUV viewer YUV viewer (RGB 형식의 raw file을 볼 때) 프로그램 내에서 파일을 저장할 때 “ bbb.rgb”로 확장자를 “. rgb”로 한다. YUVSequenceViewer.exe 실행 File Open 저장된 .rgb 선택. image의 넓이, 높이 입력 format은 반드시 “RGB” 2018-12-26 MediaLab , Kyunghee University
MediaLab , Kyunghee University YUV viewer YUV viewer (yuv 형식의 file을 볼 때) 프로그램 내에서 파일을 저장할 때 “ bbb.yuv”로 확장자를 “. yuv”로 한다. YUVSequenceViewer.exe 실행 File Open 저장된 .yuv 선택. image의 넓이, 높이 입력 format은 반드시 “YUV” 2018-12-26 MediaLab , Kyunghee University
MediaLab , Kyunghee University Week 3 assignment 움직이는 RGB 영상을 만들어 보라. RGB 영상에서 2X8 matrix를 떼와서 A라고 하고, 다음 B matrix와 곱하여 결과를 분석하라. 2018-12-26 MediaLab , Kyunghee University