질문,답변

히스토그램

조회 수 116 추천 수 0 2017.10.13 15:31:34

cvi에서 히스토그램을 그릴려고 찾아보니 함수가 존재하더군요...

예제파일도 있구요...

 

https://forums.ni.com/t5/LabWindows-CVI/How-to-plot-a-histogram-graphic-using-data-acquisited/td-p/976061

 

그래서 소스분석하고 잘 가다가...

 

원래는 예제에 있던 MODE 함수를 사용할려고보니...

 

히스토그램 피크값만 읽을수 있지.. 피크값의 갯수는 읽지를 못하더라구요.....

 

그래서 찾아보니 modeEx 가 있어서 적용할려고 보니...

 

생각처럼 결과값이 나오질 않습니다.

 

예제에 나오는 소스를 조금 고쳤습니다.

 

원래 원하는 값은 modeValue = 1.5   modeCount = 3 인데....(예제uir 기준)

 

둘다 0값이 나오고 있습니다......

 

도와주세요...ㅠㅠ

 

/* Get the array values from the UIR */
            GetCtrlVal (panel, PANEL_INTERVALS, &intervals);
            GetCtrlVal (panel, PANEL_Data0, &DataArray[0]);
            GetCtrlVal (panel, PANEL_Data1, &DataArray[1]);
            GetCtrlVal (panel, PANEL_Data2, &DataArray[2]);
            GetCtrlVal (panel, PANEL_Data3, &DataArray[3]);
            GetCtrlVal (panel, PANEL_Data4, &DataArray[4]);

         

            /* Get the min and max values in the array */
            MaxMin1D (DataArray, 5, &max, &imax, &min, &imin);
            printf("min :: %f\n", min);
            printf("max :: %f\n", max);
   
            /* Calculate Mode and Histogram */
            /* Round max up and round min down to include all points, double precision can be funny */
            //Mode (DataArray, 5, min-1, max+1, intervals, &modeValue);
            ModeEx (DataArray, 5, 0, &modeValue, &modeCount);
            printf("mode val :: %f\n", modeValue);
            printf("mode count :: %zu\n", modeCount);
            Histogram (DataArray, 5, min-1, max+1, hist, axis, intervals);
           
            /* Display the Min and Max used for the Histogram function */
            SetCtrlVal (panel, PANEL_HISTMIN, min-1);
            SetCtrlVal (panel, PANEL_HISTMAX, max+1);
           
            /* Display the Mode and the Histogram */
            SetCtrlVal (panel, PANEL_MODE, modeValue);
            SetAxisRange (panel, PANEL_GRAPH, VAL_MANUAL, min-1, max+1, VAL_MANUAL, 0, max+1);
            DeleteGraphPlot (panel, PANEL_GRAPH, -1, VAL_DELAYED_DRAW);
            PlotXY (panel, PANEL_GRAPH, axis,  hist, intervals,
                VAL_DOUBLE, VAL_SSIZE_T, VAL_VERTICAL_BAR, VAL_EMPTY_SQUARE, VAL_SOLID, 1, VAL_OFFWHITE);
               
            /* Display the Histogram Text */
            /*for (i=0;i<intervals; i++) {
                if (hist[i]>0) {
                    Fmt(message,"Center at");
                    PlotText (panel, PANEL_GRAPH, axis[i]-0.5, (double)hist[i]+0.6,
                        message, VAL_APP_META_FONT, VAL_BLUE, VAL_TRANSPARENT);
               
                    Fmt(message,"%f", axis[i]);
                    PlotText (panel, PANEL_GRAPH, axis[i]-0.25, (double)hist[i]+0.25,
                        message, VAL_APP_META_FONT, VAL_BLUE, VAL_TRANSPARENT);
                }       
            }*/       


허창원

2017.10.18 22:20:50
*.46.248.65

자세히 보지는 못했지만,

ModeEx()함수의 Intervals의 인자값이 0보다 크면 히스토그램 알고리즘으로 mode를 찾지만,

0 (0보다 작거나 같은 값)을 넣어주셨는데, 이것은 거의 같은 값이 있어야 mode를 찾는 것 같습니다.

그래서 같은 값이 없으니 0이 나온 것 같습니다.

 

 

20171018_222010_CG2017_.png

 

첨부
List of Articles
번호 제목 글쓴이 날짜 조회 수
공지 파일(특히 그림파일)을 올리실 때의 유의사항 운영자 2004-07-16 98967
1615 Tab 컨트롤러의 Label 변경 [1] sebi 2019-10-29 14
1614 utf-8 디코딩 관련하여 질문드립니다. cvi초보! 2019-07-11 29
1613 libMPSSE.dll 파일로드 에러 질문 입문 2019-06-12 31
1612 CVI 232통신 질문 드려요 [1] 길꾸리 2019-04-17 125
1611 pns 파일은 어떻게 확인할 수 있는지요? file [2] 쉬리0103 2018-11-09 106
1610 두개의 랜포트중 한개 사용방법? [2] 이중훈 2018-09-18 148
1609 rtsp 프로그램 해보신분 계신가요...? [3] 루키니아 2018-08-06 339
1608 데이터량이 많을경우... [2] 루키니아 2018-07-05 154
1607 한글 IME 강좌편 tree 컨트롤에서 에러 file [4] 개발닥발 2018-07-04 71
1606 LabWindows/CVI 2017에서 RC1109 에러가 나는데요... file [1] 허창원 2018-05-25 147
1605 TCP 통신 질문입니다. client로 binary데이터 전송방법 문의드립니다. [2] 토키토키 2018-03-26 1222
1604 예제 Tmer [1] 깔쌈신 2018-03-19 124
1603 activex control 설치 관련 땡글이 2018-03-16 324
1602 디버그 모드와 릴리즈 모드에 대해 질문드립니다. [1] cvi초보! 2018-01-02 138
1601 하위 폴더 안의 데이터 검색하는 방법 문의 드립니다. [1] 토키토키 2017-12-28 89
1600 C++ 이용 관련 문의드립니다. file [2] cvi초보! 2017-12-15 163
1599 그래프 그리는 것 관련 질문드립니다. [1] cvi초보! 2017-11-15 115
» 히스토그램 [1] 김승준 2017-10-13 116
1597 'Error Code -94' 해결방법이... [2] 요돌이 2017-10-10 102
1596 cvi 에서 cmd창 없애는 방법 [2] 김승준 2017-09-11 138