C++Builder Programming Forum
C++Builder  |  Delphi  |  FireMonkey  |  C/C++  |  Free Pascal  |  Firebird
볼랜드포럼 BorlandForum
 경고! 게시물 작성자의 사전 허락없는 메일주소 추출행위 절대 금지
C++빌더 포럼
Q & A
FAQ
팁&트릭
강좌/문서
자료실
컴포넌트/라이브러리
메신저 프로젝트
볼랜드포럼 홈
헤드라인 뉴스
IT 뉴스
공지사항
자유게시판
해피 브레이크
공동 프로젝트
구인/구직
회원 장터
건의사항
운영진 게시판
회원 메뉴
북마크
볼랜드포럼 광고 모집

C++빌더 Q&A
C++Builder Programming Q&A
[75094] C 언어 구의 부피 관련 질문입니다.
니시엔 [hykim5] 3447 읽음    2018-09-12 16:33
우선 제가 하고자 하는것은 OpenCV를 통해 200,200 까만 IplImage를 생성 후 해당 이미지에 cvCircle를 통해 반지름 50인 흰색 원을 그린 후 해당 이미지를 통해 반지름 50인 구의 부피를 계산하려 합니다.
제가 생각하기엔 흰색인 이미지 한 Pixel 라인에서 Intensity 값이 255인 부분만 뽑아서  Pixel 개수가 지름인 원의 넓이를 모두 더하면 구의 부피가 될거라 생각했지만 실제 공식에 대입하여 계산한 값과 너무 많은 차이가 발생합니다.
왜 그런지 예상조차 되지 않아 여기에 도움을 청해봅니다.
실제 계산 소스(Test.bmp가 200,200 의 까만색 이미지에 반지름 50,중심좌표 100,100의 하얀 원을 그린 이미지 입니다.)

        IplImage *src_Img = cvLoadImage("D:\\Test.bmp",0);
   
    int nRadius = 0;
    double dData,dSize = 0;
    std::vector<int> vector;
    for(int i = 0;i<src_Img->height;i++){
        for(int j =0;j<src_Img->widthStep;j++){
            dData = (double)cvGetReal2D(src_Img,j,i);

            if(dData == 255){
                  nRadius++;
            }
            else if(dData != 255 && j>src_Img->widthStep/2){
                break;
            }

        }
        if(nRadius != 0){
            ListBox1->AddItem((UnicodeString)nRadius,NULL);
            dSize += CalcSizeImage((double)nRadius);
            nRadius = 0;
        }
    }
   ShowMessage(dSize);

원 넓이 계산 함수.

        double dRadius = dPixelData/2.0;

    double dArea = dRadius * dRadius * M_PI;

    return dArea;

실제 공식(M_PI 는 원주율)

        double dSize = 4 / 3 * 50*50*50* M_PI;

    ShowMessage(dSize);

공식으로 구한 구의 부피
392699.xxx
적분(?)으로 구한 구의 부피
522984.xxx

+ -

관련 글 리스트
75094 C 언어 구의 부피 관련 질문입니다. 니시엔 3447 2018/09/12
75096     Re:C 언어 구의 부피 관련 질문입니다. 빌더(TWx) 3783 2018/09/14
Google
Copyright © 1999-2015, borlandforum.com. All right reserved.