PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2009/05/06 17:26:58
Name GreeNSmufF
Subject c++ 간단문제(이미지 프로세싱관련)
안녕하세요
혹시 도움을 받을수 있을까해서 여기에 적어봅니다
제가 식(equation)을 넣어서 inverse gamma fuction을 만들어야 하는데
image.pixel (x,y) = 255* (x/255)^(2.5) 을 사용하면 됩니다..
여기에서 2.5 승을 만드는법을 모르겠습니다.
그래서 매스 해더에 있는 pow function을 이용해서 제가 밑에처럼 식을썼는데
미친듯한 에러를 만들어 냅니다... 좀 도와주세요


#include <stdlib.h>
#include <iostream>
#include <math.h>
#include "image.h"
using namespace std;

int main (int argc, char* argv[])
{
        // verify arguments' correctness
        if (argc != 3)
        {
                cerr << "Useage: " << argv[0]
                     << " input.png output.png" << endl;
                return 1;
        }

        // load the input image
        Image image;
        image.LoadPng (argv[1]);
        
        // perform gamma point operation
        for (int x = 0; x < image.Width (); x++)
        {
                for (int y = 0; y < image.Height (); y++)
                {
                        /*===

                        여기에다가 식을 넣으면됨..아래는 제가 쓴식...
                        
                        ===*/
                image.Pixel (x,y) = 255*pow((x/255),2.5);
                image.Pixel (x,y) = 255*pow((y/255),2.5);
                }
        }
        
        // save the image to PNG format
        image.SavePng (argv[2]);

        return 0;
}

g++     lab7-part1.cc   -o lab7-part1
lab7-part1.cc: In function ?nt main(int, char**)?
lab7-part1.cc:37: warning: converting to ?nt?from ?ouble?
lab7-part1.cc:38: warning: converting to ?nt?from ?ouble?
/tmp/ccKEeIBT.o: In function `ImageTemplate<int>::LoadPng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)':
lab7-part1.cc:(.text._ZN13ImageTemplateIiE7LoadPngESs[ImageTemplate<int>::LoadPng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x5a): undefined reference to `png_create_read_struct'
lab7-part1.cc:(.text._ZN13ImageTemplateIiE7LoadPngESs[ImageTemplate<int>::LoadPng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x86): undefined reference to `png_create_info_struct'
lab7-part1.cc:(.text._ZN13ImageTemplateIiE7LoadPngESs[ImageTemplate<int>::LoadPng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0xb6): undefined reference to `png_destroy_read_struct'
lab7-part1.cc:(.text._ZN13ImageTemplateIiE7LoadPngESs[ImageTemplate<int>::LoadPng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0xf0): undefined reference to `png_destroy_read_struct'
lab7-part1.cc:(.text._ZN13ImageTemplateIiE7LoadPngESs[ImageTemplate<int>::LoadPng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x119): undefined reference to `png_init_io'
lab7-part1.cc:(.text._ZN13ImageTemplateIiE7LoadPngESs[ImageTemplate<int>::LoadPng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x12b): undefined reference to `png_read_info'
lab7-part1.cc:(.text._ZN13ImageTemplateIiE7LoadPngESs[ImageTemplate<int>::LoadPng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x170): undefined reference to `png_get_IHDR'
lab7-part1.cc:(.text._ZN13ImageTemplateIiE7LoadPngESs[ImageTemplate<int>::LoadPng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x183): undefined reference to `png_set_strip_16'
lab7-part1.cc:(.text._ZN13ImageTemplateIiE7LoadPngESs[ImageTemplate<int>::LoadPng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x196): undefined reference to `png_set_expand'
lab7-part1.cc:(.text._ZN13ImageTemplateIiE7LoadPngESs[ImageTemplate<int>::LoadPng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x1b2): undefined reference to `png_set_expand'
lab7-part1.cc:(.text._ZN13ImageTemplateIiE7LoadPngESs[ImageTemplate<int>::LoadPng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x1cc): undefined reference to `png_get_valid'
lab7-part1.cc:(.text._ZN13ImageTemplateIiE7LoadPngESs[ImageTemplate<int>::LoadPng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x1e0): undefined reference to `png_set_expand'
lab7-part1.cc:(.text._ZN13ImageTemplateIiE7LoadPngESs[ImageTemplate<int>::LoadPng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x1f2): undefined reference to `png_read_update_info'
lab7-part1.cc:(.text._ZN13ImageTemplateIiE7LoadPngESs[ImageTemplate<int>::LoadPng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x241): undefined reference to `png_get_channels'
lab7-part1.cc:(.text._ZN13ImageTemplateIiE7LoadPngESs[ImageTemplate<int>::LoadPng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x27e): undefined reference to `png_get_rowbytes'
lab7-part1.cc:(.text._ZN13ImageTemplateIiE7LoadPngESs[ImageTemplate<int>::LoadPng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x2d3): undefined reference to `png_read_image'
lab7-part1.cc:(.text._ZN13ImageTemplateIiE7LoadPngESs[ImageTemplate<int>::LoadPng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x2e5): undefined reference to `png_read_end'
lab7-part1.cc:(.text._ZN13ImageTemplateIiE7LoadPngESs[ImageTemplate<int>::LoadPng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >)]+0x3d6): undefined reference to `png_destroy_read_struct'
/tmp/ccKEeIBT.o: In function `ImageTemplate<int>::SavePng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const':
lab7-part1.cc:(.text._ZNK13ImageTemplateIiE7SavePngESs[ImageTemplate<int>::SavePng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const]+0x57): undefined reference to `png_create_write_struct'
lab7-part1.cc:(.text._ZNK13ImageTemplateIiE7SavePngESs[ImageTemplate<int>::SavePng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const]+0x83): undefined reference to `png_create_info_struct'
lab7-part1.cc:(.text._ZNK13ImageTemplateIiE7SavePngESs[ImageTemplate<int>::SavePng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const]+0xaa): undefined reference to `png_destroy_write_struct'
lab7-part1.cc:(.text._ZNK13ImageTemplateIiE7SavePngESs[ImageTemplate<int>::SavePng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const]+0xe8): undefined reference to `png_destroy_write_struct'
lab7-part1.cc:(.text._ZNK13ImageTemplateIiE7SavePngESs[ImageTemplate<int>::SavePng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const]+0x106): undefined reference to `png_init_io'
lab7-part1.cc:(.text._ZNK13ImageTemplateIiE7SavePngESs[ImageTemplate<int>::SavePng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const]+0x15e): undefined reference to `png_set_IHDR'
lab7-part1.cc:(.text._ZNK13ImageTemplateIiE7SavePngESs[ImageTemplate<int>::SavePng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const]+0x170): undefined reference to `png_write_info'
lab7-part1.cc:(.text._ZNK13ImageTemplateIiE7SavePngESs[ImageTemplate<int>::SavePng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const]+0x283): undefined reference to `png_write_image'
lab7-part1.cc:(.text._ZNK13ImageTemplateIiE7SavePngESs[ImageTemplate<int>::SavePng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const]+0x295): undefined reference to `png_write_end'
lab7-part1.cc:(.text._ZNK13ImageTemplateIiE7SavePngESs[ImageTemplate<int>::SavePng(std::basic_string<char, std::char_traits<char>, std::allocator<char> >) const]+0x2a8): undefined reference to `png_destroy_write_struct'
collect2: ld returned 1 exit status
gmake: *** [lab7-part1] Error 1

위에는 에러입니다...



통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
정현준
09/05/06 17:36
수정 아이콘
에러 메시지로 볼 때 pow쪽은 문제가 없습니다. warning은 출력시 형이 맞지 않아서 그런거니 수정해주시면 되구요. 혹시나 해서 pow의 두 번째 인수에 2.5를 넣어 출력하는 프로그램 만들었는데 잘 돌구요. 문제는 ImageTemplate 구조체의 멤버들이네요. image.h의 내용을 몰라 어떻게 되어 있는지 모르겠지만, 아무튼 그쪽 문제로 보입니다.
09/05/06 17:42
수정 아이콘
음.. image 라는 클래스가 template으로 되어있군요, 근데 include 하실때 뭔가 실수하신것 같습니다.
다른 예제 등을 찾아보시고, 혹시나 image.h 를 include 하실때, 그 전에 뭔가 다른건 include 해줘야만 하는지 등등을 찾아보세요.
png_write_end.. 등등의 구조체 내지는 클래스 등이 제대로 선언이 안된거 같습니다.
MoreThanAir
09/05/06 19:22
수정 아이콘
원래 템플릿 사용하려면 변수형을 명시해줘야 하지 않나요?

예를 들어 STL에서 정수형 큐를 사용하고 싶다면

queue<int> q;

이런식으로 해야하는데... 템플릿 사용법을 다시 한 번 확인해 보심이...
chcomilk
09/05/06 19:34
수정 아이콘
png관련 라이브러리가 링크 되지 않아서 인것 같습니다.
정신놓은너구
09/05/07 01:00
수정 아이콘
와....gamma correction;;;;;
저도 오늘 이거 만들고 왔는데...왠지 반갑습니다.낄낄;;
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
55164 요즘 부쩍 목이 많이 마르네요. [3] Shura1899 09/05/07 1899
55163 이번주 토요일 초등학교은사님을 건대입구에서 뵈려고 하는데 .. 저녁식사하기 좋은음식점 [1] PT트레이너2091 09/05/07 2091
55162 목에서 피가 나왔어요... [1] 이스트2027 09/05/07 2027
55161 초보자도 볼링 칠만한가요? [19] 서명덕2983 09/05/07 2983
55159 청심환에 관하여 궁금합니다. [7] 으촌스러2537 09/05/06 2537
55158 사내 연애 관련 드라마, 영화 질문입니다 ^^ 좌절금지2113 09/05/06 2113
55157 커세어가 공격형태가 폭발형인것에 관한 질문입니다. [31] 새들이(Saedli)4041 09/05/06 4041
55154 폰을 잃어버렸습니다. [5] 화잇밀크러버2092 09/05/06 2092
55153 모던하고 세련된 느낌의 노래 추천 부탁드려요~ ^^ [4] 엑소2118 09/05/06 2118
55152 가슴상부근육을 키우는데 효과적인 운동은 뭐가 있을까요? [7] DANKAN7690 09/05/06 7690
55150 디클라인 벤치 프레스 질문입니다 [4] 침묵도 목소리1816 09/05/06 1816
55149 삼각함수 적분 문제입니다. [2] 임요환의 DVD2893 09/05/06 2893
55148 맨유나 바르셀로나 등은 국대로 치면 어느정도 급인가요?? [15] 우왕크굿크2793 09/05/06 2793
55147 여자에게 마음이 있을 때, 매일 연락을 해야 하는지.... [12] 유유히11719 09/05/06 11719
55146 수학 적분 질문입니다. [2] 임요환의 DVD2247 09/05/06 2247
55145 손에 물감(?) 이상한 색소가 묻었는데 절대 안지워지네요.. 도와주세요 [4] ooceline2066 09/05/06 2066
55144 자바 마우스클릭 이벤트 질문입니다.. [1] 이상직2396 09/05/06 2396
55143 서울 지역 전세 (원룸, 오피스텔, 빌라 등) [6] 8142107 09/05/06 2107
55142 건대입구에 소개팅할만한 장소 어디 있나요? [5] 쌈팍8457 09/05/06 8457
55140 c++ 간단문제(이미지 프로세싱관련) [5] GreeNSmufF2540 09/05/06 2540
55139 토익 문제 질문입니다. [4] 가짜힙합1535 09/05/06 1535
55137 셋포인트 설치... [1] Paul Gilbert2106 09/05/06 2106
55136 일렉트로니카 음악 추천 좀 부탁드립니다~~ [1] Eastside1st1640 09/05/06 1640
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로