作者s123123sam (~火火狗)
看板MATLAB
標題Re: [問題]有無方法讀取二值圖片 自動瘦身
時間Fri Sep 14 17:51:38 2012
※ 引述《david5192003 (321)》之銘言:
: 原圖
: http://ppt.cc/zLgW
: MATLAB自動把全為0的行或是列去除
: 變成http://ppt.cc/AXWx
: 因為自己寫迴圈 配if速度偏慢 處理量有點多
: 所雅想問看看有無方法
: 向如果用find 找1 在依造座標作一張圖 右邊跟下面的黑色區域就會不見
: 但上跟左還在 想要去除
: 謝謝
看你的敘述可以這樣做
不需要用到迴圈、與if
假設temp_daata 為讀進來的圖檔案矩陣
利用sum 指令決定要保留邊界位置
程式碼如下
% temp_daate 原圖檔案矩陣
%% out Value
% cedata 去除黑邊的圖檔
temp_daata =[
0 0 0 0 0 0 0 0
0 0 1 0 0 0 0 0
0 0 0 0 0 1 1 0
0 0 1 0 0 1 0 0
0 0 0 0 1 0 1 0
0 0 0 0 1 0 0 0
0 0 0 1 0 1 0 0
0 0 0 0 0 0 0 0
];
temp_a =sum(temp_daata,2);
temp_b = sum(temp_daata);
temp_ab =find(temp_a >=1);
temp_bb =find(temp_b >=1);
ce_data=temp_daata(temp_ab(1):temp_ab(size(temp_ab,1)),...
temp_bb(1):temp_bb(size(temp_bb,2)));
clear temp_daata temp_a temp_b temp_ab temp_bb
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.127.6.148
※ 編輯: s123123sam 來自: 140.127.6.148 (09/14 17:52)
※ 編輯: s123123sam 來自: 140.127.6.148 (09/14 17:54)
※ 編輯: s123123sam 來自: 140.127.6.148 (09/14 17:55)
※ 編輯: s123123sam 來自: 140.127.6.148 (09/14 17:56)
※ 編輯: s123123sam 來自: 140.127.6.148 (09/14 17:58)
1F:推 david5192003:測試過後 雖然邊邊還留有一點黑框 但非常接近想要的 09/14 22:53
2F:→ david5192003:概念 太感謝了 太厲害了!! 09/14 22:54
3F:推 david5192003:有黑邊是我輸入圖檔的問題@@ 我的錯 謝原PO的指導 09/14 23:16
4F:→ s123123sam:不客氣 互相交流吧 自己也還在努力 在 振動噪音方面 09/15 09:01
※ 編輯: s123123sam 來自: 140.127.6.148 (09/16 16:38)