[問題]關於標記後影像的處理

看板MATLAB作者 (andy)時間12年前 (2013/10/24 06:41), 編輯推噓0(0012)
留言12則, 2人參與, 最新討論串1/1
現在將一張影像做完標記後 想要找出標記影像中像素最多的三個區域 程式如下 [L,n]=bwlabel(imgs,8); count=zeros(1,max(max(L))); for i=1:size(L,1) for j=1:size(L,2) count(L(i,j))=count(L(i,j))+1; end end sf=sortrows(count'); 想請問各位前輩 為何for迴圈中的count(L(i,j))=count(L(i,j))+1會一直跳錯誤 那要如何去修正呢? -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 175.180.77.22

10/24 08:10, , 1F
錯誤訊息是?
10/24 08:10, 1F

10/24 16:15, , 2F
Attempted to access count(0)
10/24 16:15, 2F

10/24 16:17, , 3F
index must be a positive integer or logical
10/24 16:17, 3F

10/24 16:18, , 4F
以上兩行便是我Command Window出現的錯誤訊息
10/24 16:18, 4F

10/24 17:08, , 5F
L(i,j)有為0的嗎y
10/24 17:08, 5F

10/24 17:09, , 6F
因為count裡面並沒有位置0的數據
10/24 17:09, 6F

10/24 17:10, , 7F
試試看: count(L(i,j)+1)=count(L(i,j)+1)+1
10/24 17:10, 7F

10/24 20:57, , 8F
照您的方法,count內有東西了
10/24 20:57, 8F

10/24 20:59, , 9F
但這次出現的錯誤是Attempted那行的count()內為count(22)
10/24 20:59, 9F

10/24 21:01, , 10F
怎麼樣處理這個問題會比較好呢?改迴圈size試過但沒辦法
10/24 21:01, 10F

10/24 23:36, , 11F
謝謝aada,上述問題已經解決
10/24 23:36, 11F
※ 編輯: andycho 來自: 175.180.77.22 (10/24 23:57)

10/25 07:58, , 12F
不客氣, 所以現在的問題都解決了?
10/25 07:58, 12F
文章代碼(AID): #1IQ52q2r (MATLAB)