2010-12-28 5 views
1

내가 MATLAB에서 "광학 문자 인식"의 프로젝트를 그리고 난 당신의 도움이 필요합니다MATLAB ButtonDownFcn

  1. 이 어떻게 인식 할 때 사용자를 눌러 이미지에 마우스? ButtonDownFcn을 사용하여이 작업을 시도했지만 메시지를 인쇄 할 때도 메시지가 인쇄되지 않습니다.

  2. 나는 사용자가 이미지에서 번호판을 선택할 수 있도록하고 싶다. 어떻게하면이 작업을 수행하고 선택한 영역의 픽셀을 저장할 수 있습니까? 사전에

감사합니다.

답변

11

주소 당신의 두 가지 질문 :

  1. 난 당신이 당신이 그것을 기대하는 방법을 작동하지 않습니다 그림 창'ButtonDownFcn'을 설정하려고 같은데요. 사용자가 이미지를 클릭 할 때 무언가를하고 싶다면, 이미지'ButtonDownFcn'을 설정하고 그림 창이나 축 객체를 설정하지 않아야합니다. (나 추가 강조)을 figure property documentation에서이 줄을 참고 : 마우스 버튼을 누를 때마다 포인터가, 그림 창에 하지만 동안

    가 실행되지 자식 개체 이상 (즉, uicontrol, uipanel , 축 또는 축 자식). 각 당신이 그것을 위해 일하고자하는 객체에 대한 'ButtonDownFcn'을 설정해야하는 이유

    이다. 그림 창에 대해이 값을 설정해도 그림의 각 개체에 대해 자동으로 작동하지는 않습니다. 각각 서로 다른 개체에 대한 'ButtonDownFcn'를 호출하기 때문에 내부와 이미지 외부를 클릭하면 다른 메시지를 표시하는 방법을

    img = imread('peppers.png');  %# Load a sample image 
    hFigure = figure;    %# Create a figure window 
    hImage = image(img);    %# Plot an image 
    set(hFigure,'ButtonDownFcn',... %# Set the ButtonDownFcn for the figure 
        @(s,e) disp('hello')); 
    set(hImage,'ButtonDownFcn',... %# Set the ButtonDownFcn for the image 
        @(s,e) disp('world')); 
    

    주의 사항 : 다음 그림과 이미지 객체의 'ButtonDownFcn'을 설정하는 예입니다. 축 중 하나의 눈금 표시 레이블을 클릭하면 아무 것도 표시되지 않습니다. 이것은 축 객체가 자체적으로 'ButtonDownFcn'을 가지므로 아무것도 설정되지 않았기 때문입니다.

  2. Image Processing Toolbox에 액세스 할 수있는 경우 IMFREEHAND 기능을 사용하여 사용자가 이미지에서 ROI (관심 영역)를 그려 볼 수 있습니다. 그런 다음 createMask method을 사용하여 ROI 내부의 픽셀에 대해 1과 ROI 외부에있는 픽셀에 대해 0을 사용하여 이미지의 바이너리 마스크를 만들 수 있습니다.