下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
第Matlab實現(xiàn)鼠標光標變成愛心和瞄準鏡形狀plot([0,pointerSize]+.5,[1,1].*(1+pointerSize)./2,'LineWidth',1.5,'Color',[0,0,0,.5]);
plot([1,1].*(1+pointerSize)./2,[0,pointerSize]+.5,'LineWidth',1.5,'Color',[0,0,0,.5]);
rcross=plot(8,8,'rx','LineWidth',2,'MarkerSize',14);
bshandle=scatter([],[],200,'s','filled','CData',[0,0,0]);
gshandle=scatter([],[],200,'s','filled','CData',[.8,.8,.8]);
pointer=zeros(pointerSize).*nan;
set(gcf,'KeyPressFcn',@keyPressFcn)
function
keyPressFcn(~,event)
switch
event.Key
case
'uparrow',rcross.YData=rcross.YData+1;
case
'downarrow',rcross.YData=rcross.YData-1;
case
'leftarrow',rcross.XData=rcross.XData-1;
case
'rightarrow',rcross.XData=rcross.XData+1;
case
'1'
pointer(pointerSize+1-rcross.YData,rcross.XData)=1;
case
'2'
pointer(pointerSize+1-rcross.YData,rcross.XData)=2;
case
'n'
pointer(pointerSize+1-rcross.YData,rcross.XData)=nan;
case
's'
timestr=char(datetime('now'));
timestr(timestr=='
')='_';
timestr(timestr==':')='_';
nowStr=timestr;
save([nowStr,'.mat'],'pointer','-mat');
end
[brow,bcol]=find(pointer==1);
bshandle.XData=bcol;
bshandle.YData=pointerSize+1-brow;
[grow,gcol]=find(pointer==2);
gshandle.XData=gcol;
gshandle.YData=pointerSize+1-grow;
rcross.XData=mod(rcross.XData+pointerSize-1,pointerSize)+1;
rcross.YData=mod(rcross.YData+pointerSize-1,pointerSize)+1;
end
mat文件的調(diào)用
p=load('heart.mat');
set(gcf,'Pointer','Custom','PointerShapeCData',p.pointer,'PointerShapeHotSpot',[16,16]);
PNG圖片轉(zhuǎn)換為光標矩陣
我們只要將圖片二值化,將圖片和圖片透明度表大小都調(diào)為32x32或者16x16,然后白色部分設(shè)置成2,黑色部分設(shè)置成1,透明度矩陣0值處設(shè)置為nan即可,代碼如下:
[img,~,alpha]=imread('1.png');
pointerSize=32;
img=imresize(img,[pointerSize,pointerSize]);
if
size(img,3)1
img=rgb2gray(img);
pointer=imbinarize(img)+1;
alpha=imresize(alpha,[pointerSize,pointerSize]);
pointer(alpha==0)=nan;
為了更方便設(shè)置光標,我將此部分封裝為了一個函數(shù),只要輸入圖片或者上一部分創(chuàng)建mat文件的路徑、鼠標作用點位置,即可更改當前figure窗口的光標:
function
setPointer(path,HotSpot,pointerSize)
%path:
png圖片,mat文件位置,或32x32,16x16double數(shù)組
%HotSpot:光標作用點
%pointerSize光標大小,僅path為png圖片路徑時需要設(shè)置
if
nargin3
pointerSize=32;
if
size(path,1)==1
type=path(end-2:end);
if
strcmp(type,'mat')
data=load(path);
P=data.pointer;
else
[img,~,alpha]=imread(path);
img=imresize(img,[pointerSize,pointerSize]);
if
size(img,3)1
img=rgb2gray(img);
end
pointer=imbinarize(img)+1;
alpha=imresize(alpha,[pointerSize,pointerSize]);
pointer(alpha==0)=nan;
P=pointer;
end
P=path;
set(gcf,'Pointer','Custom','PointerShapeCData',P,'PointerShapeHotSpot',HotSpot);
path:png圖片,mat文件位置,或32x32,16x16double數(shù)組HotSpot:光標作用點pointerSize光標大?。簝Hpath為png圖片路徑時需要設(shè)置
程序調(diào)用:對于以下名為test.png的文件
以及自己畫的一個ban.mat文件,可以通過以下方式調(diào)用:
setPoint
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 加油站應(yīng)急處置預案演練計劃方案
- 機房環(huán)境管控運維管理制度
- 安徽合肥市瑤海區(qū)2025-2026學年第一學期九年級期末考試道德與法治試題(含答案)
- 2025年華南農(nóng)業(yè)大學珠江學院馬克思主義基本原理概論期末考試模擬題附答案解析
- 命題符號講解課件
- 2024年齊齊哈爾市職工大學馬克思主義基本原理概論期末考試題及答案解析(必刷)
- 2024年齊魯醫(yī)藥學院馬克思主義基本原理概論期末考試題含答案解析(必刷)
- 2025年連城縣幼兒園教師招教考試備考題庫帶答案解析
- 2024年甘肅衛(wèi)生職業(yè)學院馬克思主義基本原理概論期末考試題含答案解析(奪冠)
- 2025年巴里坤縣幼兒園教師招教考試備考題庫附答案解析(必刷)
- 糖皮質(zhì)激素在兒科疾病中的合理應(yīng)用3
- 無人機制造裝配工藝智能優(yōu)化
- GB/T 1965-2023多孔陶瓷室溫彎曲強度試驗方法
- 六年級語文非連續(xù)性文本專項訓練
- 體育單招核心1700單詞
- 梨樹溝礦區(qū)金礦2022年度礦山地質(zhì)環(huán)境治理計劃書
- 師德規(guī)范關(guān)愛學生
- 太陽能光伏發(fā)電裝置的開發(fā)與推廣商業(yè)計劃書
- 海水淡化用閥門
- GB/T 36377-2018計量器具識別編碼
- GB/T 26332.3-2015光學和光子學光學薄膜第3部分:環(huán)境適應(yīng)性
評論
0/150
提交評論