簡體   English   中英

MATLAB ButtonDownFcn

[英]MATLAB ButtonDownFcn

我在MATLAB中有一個“光學字符識別”項目,需要您的幫助:

  1. 我如何識別用戶何時在圖像上按下鼠標? 我試圖用ButtonDownFcn做到這一點,但是即使我只是打印消息,消息也不會被打印。

  2. 我想允許用戶從圖像中選擇車牌。 我該怎么做並保存所選區域的像素?

提前致謝。

解決您的兩個問題:

  1. 我猜想您正在嘗試設置圖形窗口'ButtonDownFcn' ,這將無法按您期望的那樣工作。 如果要在用戶單擊圖像時執行某些操作,則應確保設置的是圖像'ButtonDownFcn' ,而不是圖形窗口或軸對象。 請注意圖形屬性文檔中的這一行(我添加了重點):

    每當指針在圖形窗口中但不在子對象(即uicontrol,uipanel,axes或axiss child)上方時,只要您按鼠標按鈕,便會執行

    這就是為什么必須為每個要為其工作的對象設置一個'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' 還要注意,如果單擊其中一個軸的刻度標記,則不會顯示任何內容。 這是因為axes對象具有自己的'ButtonDownFcn' ,未將其設置為任何值。

  2. 如果您有權使用圖像處理工具箱 ,則可以使用功能IMFREEHAND來使用戶在圖像中繪制ROI(感興趣區域)。 然后,您可以使用createMask方法創建圖像的二進制蒙版,其中ROI內的像素為1,ROI內的像素為0。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM