[영상처리] 히스토그램 평활화와 명세화
닫기
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
해당 자료는 10페이지 까지만 미리보기를 제공합니다.
10페이지 이후부터 다운로드 후 확인할 수 있습니다.

소개글

[영상처리] 히스토그램 평활화와 명세화에 대한 보고서 자료입니다.

목차

1.히스토그램 기반 영상 처리의 개념
- 히스토그램이란
- 히스토그램 평활화
- 히스토그램 명세화

2. 주요 소스 코드
- 명세화 함수
- 평활화 함수
- 히스토그램 데이터 읽기 함수
- 히스토그램 분포그래프 출력 함수
- 가산 연산 함수
- 곱셈 연산 함수
- Null 연산 함수
- 예외 처리문

3. 평활화 및 명세화 수행 및 비교분석
- 히스토그램 평활화
-> 매우 밝은 영상의 평활화
-> 적절히 어두운 영상의 평활화
- 히스토그램 명세화
-> 적절히 밝은 형태의 히스토그램 분포를 통한 영상 명세화
-> 매우 어두운 형태의 히스토그램 분포를 통한 영상 명세화

4. 고찰 및 참고문헌

5. 부록
- 소스코드 전문 (복사 및 붙여넣기 용도)
- 프로젝트 실행 및 설정, 프로그램 사용 방법 설명

본문내용

OpenHistogram(argv[3]) == 0)
{
printf("histogram can't open\r\n");
return 0;
}
printf("Starting equalize process\r\n");
EqualizeImage(prawbuf,width,height); // 원본 이미지 평활화 완료
printf("Target Image Equalize Complete\r\n");
SpecificateImage(prawbuf,width,height);
SaveBitmap("C:\\specificate.bmp",prawbuf,width,height,bitcount);
}
else if(progmode == 6) // 6 : 영상 밝기조정
{
if(OpenBitmap(argv[2])==0)
{
printf("image can't open\r\n");
return 0;
}
BrightenImage(prawbuf,width,height);
SaveBitmap("C:\\brighten.bmp",prawbuf,width,height,bitcount);
}
else if(progmode == 7) // 7 : 강조
{
if(OpenBitmap(argv[2])==0)
{
printf("image can't open\r\n");
return 0;
}
AccentImage(prawbuf,width,height);
SaveBitmap("C:\\Accent.bmp",prawbuf,width,height,bitcount);
}
else if(progmode == 8) // 8 : 그냥 출력
{
if(OpenBitmap(argv[2])==0)
{
printf("image can't open\r\n");
return 0;
}
JustImage(prawbuf,width,height);
SaveBitmap("C:\\just.bmp",prawbuf,width,height,bitcount);
}
else if(progmode == 9) // 9 : 히스토그램 직접 영상으로 출력 =ㅁ=
{
if(OpenHistogram(argv[2]) == 0)
{
printf("histogram can't open\r\n");
return 0;
}
SaveHistograph(histobuf);
}
else
{
printf("0 return 0;
}
}
return 0;
}
/*
if(OpenBitmap(argv[2])==0)
return 0;
SaveHistogram("D:/histogram.txt",prawbuf,width,height,bitcount);
SaveBitmap("D:/save_image.bmp",prawbuf,width,height,bitcount);
*/
프로그램 실행방법 및 수정방법
1. 프로젝트 지정된 위치에 생성

가급적 C: 에 직접 프로젝트를 생성하는것이 편리합니다.
방금 전 이미지 상태에서 확인을 누르면 다음과 같이 뜨는데,
기본 설정으로 진행하므로 그냥 [마침]을 누릅니다.
2. 소스코드 붙여넣기
부록에 첨부되어있는 소스코드 전문을 imagedemo.cpp파일에 옮깁니다
3. 빌드 모드 설정
기본 빌드 모드가 release 로 설정 되어있는데, debug로 바꿔줍니다.
4. 프로젝트 문자 형 설정
Visual Studio 2008 이전 버전들은 [project property]입니다.
기본 설정인 유니코드 문자 집합 사용을 멀티바이트 문자 집합으로 바꿈
여기까지 완료하셨으면 F7을 눌러 빌드를 수행합니다. 오류가 0개로 빌드가 성공해야만 합니다. 올바르게 빌드가 성공하면 프로젝트가 존재하는 폴더 내부에 debug라는 폴더가 생성되고, 그곳에 imagedemo.exe 프로그램이 생성됩니다.
5. 이미지파일 지정된 위치에 저장
웹상에 돌아다니는 256 x 256 비트맵 이미지 파일들로 영상처리를 수행하는 것이 좋습니다. 이들 파일 역시 C:에 직접 저장해줍니다.
6. 도스 환경에서 디버그 모드로 프로그램 실행
[시작]버튼을 누르면 나오는 [실행]을 실행합니다=ㅅ=;
cmd라고 치고 실행하면 도스창이 뜹니다.
처음에 cd C:\ 를 입력하여 기본 경로를 C:\로 바꿔줍니다.
그 상태에서 프로그램을 실행시키기 위해 경로를 지정해주고, 프로그램 모드에 맞도록 필요한 파일 경로를 입력해주면 됩니다.
위의 예제는 4번 모드인 평활화 작업으로, C:\에 있는 lena.bmp를 평활화 하여 equalize.bmp로 저장하는 작업을 수행합니다.
프로그램 모드는 다음과 같습니다.
1 : bmp파일 정보 출력 -> 모드 뒤에 bmp파일 경로 입력
2 : bmp파일 히스토그램 분포 출력 -> 1번과 동일한 경로 입력
결과 파일 - histogram.txt
3 : 영상 반전 -> 역시 동일.
결과 파일 - invert.bmp
4 : 영상 평활화 -> 역시 동일.
결과 파일 - equalize.bmp
5 : 영상 명세화
-> 모드숫자 뒤에 명세화해줄이미지경로 명세화기준히스토그램문서경로
순으로 입력해줍니다.
결과 파일 - specificate.bmp
6 : 가산 연산 -> 모드숫자 6 뒤에 이미지경로 입력후 엔터
-> 전체 픽셀에 더해줄 값 입력 후 엔터
결과 파일 - brighten.bmp
7 : 곱셈 연산 -> 6과 동일하게 이미지 경로 입력후 엔터
-> 전체 픽셀해 곱해줄 값 입력 후 엔터
결과 파일 - accent.bmp
8 : Null 연산 -> 모드 숫자 뒤에 이미지 경로입력
결과 파일 - just.bmp
(일반 이미지 파일을 흑백으로 설정한 뒤 bmp파일 형식으로 저장하여 영상처리를 하기 전에 반드시 이 모드를 수행해 보시기 바랍니다. C환경에서 인식하는 해상도구조가 일반 사진 해상도 구조와 매우 다릅니다.)
9 : Histograph 출력 -> 모드 숫자 뒤에 히스토그램 분포 데이터가 저장되어있는 txt 파일 경로 입력
결과 파일 - histograph.bmp
7. 결과 확인
예제를 실행하면 평활화된 이미지가 C에 저장되어있음을 알 수 있다.
  • 가격4,000
  • 페이지수34페이지
  • 등록일2010.10.21
  • 저작시기2010.10
  • 파일형식한글(hwp)
  • 자료번호#859984
본 자료는 최근 2주간 다운받은 회원이 없습니다.
청소해
다운로드 장바구니