日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab写字,Matlab实现鼠标写字代码

發(fā)布時(shí)間:2025/3/11 循环神经网络 55 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab写字,Matlab实现鼠标写字代码 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

類型:編程工具大小:1.5M語(yǔ)言:中文 評(píng)分:1.2

標(biāo)簽:

立即下載

最早的程序,實(shí)在忘了從哪里下載的了。能夠?qū)崿F(xiàn)鼠標(biāo)的手寫(xiě)輸入,但是一些不連續(xù)的點(diǎn)。

tmouse.m

function tmouse(action)

% TMOUSE 本例展示如何以Handle Graphics來(lái)設(shè)定滑鼠事件(Mouse

% Events)的反應(yīng)指令(Callbacks)

if nargin == 0

action = 'start';

end

switch(action)

% 開(kāi)啟圖形視窗

case 'start',

axis([0 1 0 1]);% 設(shè)定圖軸范圍

box on;% 將圖軸加上圖框

title('Click and drag your mouse in this window!');

% 設(shè)定滑鼠按鈕被按下時(shí)的反應(yīng)指令為「tmouse down」

set(gcf, 'WindowButtonDownFcn', 'tmouse down');

% 滑鼠按鈕被按下時(shí)的反應(yīng)指令

case 'down',

% 設(shè)定滑鼠移動(dòng)時(shí)的反應(yīng)指令為「tmouse move」

set(gcf, 'WindowButtonMotionFcn', 'tmouse move');

% 設(shè)定滑鼠按鈕被釋放時(shí)的反應(yīng)指令為「tmouse up」

set(gcf, 'WindowButtonUpFcn', 'tmouse up');

% 列印「Mouse down!」訊息

fprintf('Mouse down!\n');

% 滑鼠移動(dòng)時(shí)的反應(yīng)指令

case 'move',

currPt = get(gca, 'CurrentPoint');

x = currPt(1,1);

y = currPt(1,2);

line(x, y, 'marker', '.', 'EraseMode', 'xor');

% 列印「Mouse is moving!」訊息及滑鼠現(xiàn)在位置

fprintf('Mouse is moving! Current location = (%g, %g)\n', currPt(1,1), currPt(1,2));

% 滑鼠按鈕被釋放時(shí)的反應(yīng)指令

case 'up',

% 清除滑鼠移動(dòng)時(shí)的反應(yīng)指令

set(gcf, 'WindowButtonMotionFcn', '');

% 清除滑鼠按鈕被釋放時(shí)的反應(yīng)指令

set(gcf, 'WindowButtonUpFcn', '');

% 列印「Mouse up!」訊息

fprintf('Mouse up!\n');

end

end

本人在Matlab 2010a上運(yùn)行過(guò)該程序tmouse.m,運(yùn)行結(jié)果截圖如下:

之后有人在此基礎(chǔ)上,把畫(huà)點(diǎn)改成了連續(xù)的線段。

本人覺(jué)得程序還有點(diǎn)小問(wèn)題,在此不再轉(zhuǎn)載。

下面是本人改進(jìn)的程序,能夠?qū)崿F(xiàn)點(diǎn)擊左鍵輸入,右鍵顯示輸入的記錄結(jié)果。

MouseDraw.m

function? MouseDraw(action)

% MouseDraw 本例展示如何以Handle Graphics來(lái)設(shè)定滑鼠事件

% (MouseDraw Events)的反應(yīng)指令(Callbacks)

% 本程序在鼠標(biāo)移動(dòng)非常快時(shí),不會(huì)造成畫(huà)“斷線”

% global不能傳矩陣

global InitialX InitialY FigHandle

imSize = 200;

if nargin == 0, action = 'start';?? end

switch(action)

%%開(kāi)啟圖形視窗

case 'start',

FigHandle = figure('WindowButtonDownFcn','MouseDraw down');

axis([1 imSize 1 imSize]);??? % 設(shè)定圖軸范圍

%???????? axis off;

grid on;

box on;???? % 將圖軸加上圖框

title('手寫(xiě)體輸入窗');

% %???????? fprintf('start');

%%設(shè)定滑鼠按鈕被按下時(shí)的反應(yīng)指令為「MouseDraw down」

% set(gcf, 'WindowButtonDownFcn', 'MouseDraw down');

dlmwrite('IXT.txt', -10, 'delimiter', '\t', 'precision', 6);

dlmwrite('IYT.txt', -10, 'delimiter', '\t', 'precision', 6);

%%滑鼠按鈕被按下時(shí)的反應(yīng)指令

case 'down',

if strcmp(get(FigHandle, 'SelectionType'), 'normal')??? %如果是左鍵

set(FigHandle,'pointer','hand');

CurPiont = get(gca, 'CurrentPoint');

InitialX = CurPiont(1,1);

InitialY = CurPiont(1,2);

dlmwrite('IXT.txt', InitialX, '-append', 'delimiter', '\t', 'precision', 6);

dlmwrite('IYT.txt', InitialY, '-append', 'delimiter', '\t', 'precision', 6);

% 列印「MouseDraw down!」訊息

% %???????????? fprintf('MouseDraw down!\n');

% 設(shè)定滑鼠移動(dòng)時(shí)的反應(yīng)指令為「MouseDraw move」

set(gcf, 'WindowButtonMotionFcn', 'MouseDraw move');

set(gcf, 'WindowButtonUpFcn', 'MouseDraw up');

elseif strcmp(get(FigHandle, 'SelectionType'), 'alt')?? % 如果是右鍵

set(FigHandle, 'Pointer', 'arrow');

set( FigHandle, 'WindowButtonMotionFcn', '')

set(FigHandle, 'WindowButtonUpFcn', '')

fprintf('MouseDraw right button down!\n');

ImageX = importdata('IXT.txt');

ImageY = importdata('IYT.txt');

InputImage = ones(imSize);

roundX = round(ImageX);

roundY = round(ImageY);

for k = 1:size(ImageX,1)

if 0

InputImage(roundX(k)-1:roundX(k)+2, roundY(k)-1:roundY(k)+2) = 0;

end

end

InputImage = imrotate(InputImage,90);?????? % 圖像旋轉(zhuǎn)90

figure(2);

imshow(InputImage);

end

%%滑鼠移動(dòng)時(shí)的反應(yīng)指令

case 'move',

CurPiont = get(gca, 'CurrentPoint');

X = CurPiont(1,1);

Y = CurPiont(1,2);

% 當(dāng)鼠標(biāo)移動(dòng)較快時(shí),不會(huì)出現(xiàn)離散點(diǎn)。

% 利用y=kx+b直線方程實(shí)現(xiàn)。

x_gap = 0.1;??? % 定義x方向增量

y_gap = 0.1;??? % 定義y方向增量

if X > InitialX

step_x = x_gap;

else

step_x = -x_gap;

end

if Y > InitialY

step_y = y_gap;

else

step_y = -y_gap;

end

% 定義x,y的變化范圍和步長(zhǎng)

if abs(X-InitialX) < 0.01??????? % 線平行于y軸,即斜率不存在時(shí)

iy = InitialY:step_y:Y;

ix = X.*ones(1,size(iy,2));

else

ix = InitialX:step_x:X ;??? % 定義x的變化范圍和步長(zhǎng)

% 當(dāng)斜率存在,即k = (Y-InitialY)/(X-InitialX) ~= 0

iy = (Y-InitialY)/(X-InitialX).*(ix-InitialX)+InitialY;

end

ImageX = [ix, X];

ImageY = cat(2, iy, Y);

line(ImageX,ImageY, 'marker', '.', 'markerSize',28, ...

'LineStyle', '-', 'LineWidth', 4, 'Color', 'Red');

dlmwrite('IXT.txt', ImageX, '-append', 'delimiter', '\t', 'precision', 6);

dlmwrite('IYT.txt', ImageY, '-append', 'delimiter', '\t', 'precision', 6);

InitialX = X;?????? %記住當(dāng)前點(diǎn)坐標(biāo)

InitialY = Y;?????? %記住當(dāng)前點(diǎn)坐標(biāo)

% 列印「MouseDraw is moving!」及滑鼠現(xiàn)在位置

% fprintf('MouseDraw is moving! Current location = (%g, %g)\n', ...

% CurPiont(1,1), CurPiont(1,2));

% %???????? fprintf('MouseDraw move!\n');

% 設(shè)定滑鼠按鈕被釋放時(shí)的反應(yīng)指令為「MouseDraw up」

% set(gcf, 'WindowButtonUpFcn', 'MouseDraw up');

%%滑鼠按鈕被釋放時(shí)的反應(yīng)指令

case 'up',

% 清除滑鼠移動(dòng)時(shí)的反應(yīng)指令

set(gcf, 'WindowButtonMotionFcn', '');

% 清除滑鼠按鈕被釋放時(shí)的反應(yīng)指令

set(gcf, 'WindowButtonUpFcn', '');

% 列印「MouseDraw up!」

% %???????? fprintf('MouseDraw up!\n');

end

end

同樣MouseDraw.m也在Matlab 2010a上運(yùn)行過(guò)。

有不足之處,請(qǐng)不吝賜教!

總結(jié)

以上是生活随笔為你收集整理的matlab写字,Matlab实现鼠标写字代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。