질문,답변

히스토그램

조회 수 158 추천 수 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 99280
1605 TCP 통신 질문입니다. client로 binary데이터 전송방법 문의드립니다. [2] 토키토키 2018-03-26 2302
1604 예제 Tmer [1] 깔쌈신 2018-03-19 387
1603 activex control 설치 관련 땡글이 2018-03-16 613
1602 디버그 모드와 릴리즈 모드에 대해 질문드립니다. [1] cvi초보! 2018-01-02 416
1601 하위 폴더 안의 데이터 검색하는 방법 문의 드립니다. [1] 토키토키 2017-12-28 273
1600 C++ 이용 관련 문의드립니다. file [2] cvi초보! 2017-12-15 216
1599 그래프 그리는 것 관련 질문드립니다. [1] cvi초보! 2017-11-15 187
» 히스토그램 [1] 김승준 2017-10-13 158
1597 'Error Code -94' 해결방법이... [2] 요돌이 2017-10-10 125
1596 cvi 에서 cmd창 없애는 방법 [2] 김승준 2017-09-11 187
1595 시리얼 통신 crc, checksum 계산기 file 하이루 2017-09-04 1255
1594 USB 연결되었을때 어떻게 확인하나요? file [1] 루키니아 2017-07-03 203
1593 외부 장치 검색하는 함수 조커 2017-02-20 153
1592 탭(tab)페이지 관련 질문드립니다. [2] cvi초보! 2017-01-26 162
1591 문자열 변환 관련. [3] 요돌이 2016-12-17 195
1590 폴더내의 파일 탐색 명령어 [2] 조커 2016-12-14 100
1589 안녕하세요 이미지 캡처 관련 질문드립니다. [5] cvi초보! 2016-12-02 163
1588 UIR 멈춤현상 관련. [1] 요돌이 2016-11-28 115
1587 win10에서 실행종료시...FATAL RUN-TIME ERROR file [6] 루키니아 2016-08-31 735
1586 패널 자체를 배열선언이 가능할까요??? (조언급구) file [2] 레몬자몽 2016-08-23 341