Ich habe ein Binärbild, das ich verwendet habe, um bconncomp und regionprops in Bereiche von Interesse zu teilen. Ich habe eine Reihe von Pixeln, die ich über das binäre Bild legen möchte ... und finde heraus, welche Region von Interesse/verbundener Komponente die meisten Linienpixel enthält. Also verwende ich in dem angehängten Bild bconncomp auf bwimage, ich bekomme Komponenten 1,2,3. Dann habe ich eine Liste von Pixeln, die der blauen Linie entsprechen. Ich möchte herausfinden, welche verbundene Komponente den größten Teil der blauen Linie enthält (# 1).MATLAB: Finden Sie verbundene Komponente nach Pixel-Position im Binärbild
Ich stelle mir vor, es ist etwas wie ...
line=(some pixel values);
cc=bwconncomps(bwimage);
tempvar=[];
for i=1:length(bwconncomps)
tempvar=find(cc.PixelIdxList{i}==line);
end
[~ answer]=max(tempvar);
Ich habe Probleme, dies funktioniert: "Index überschreitet Matrix Dimensionen". Der Cyan war nur zur Veranschaulichung meiner Frage - in Wirklichkeit habe ich nur das Binärbild und dann einen Index von Werten für die Linie - diese haben das gleiche Format wie bwconncomps PixelIdxList (dh in einem 200x200 Pixel Bild das erste Pixel in der zweiten Spalte) wäre "201" nicht "1,2") – user3470496
@ user3470496 Ah ok. aktualisierte Antwort. – Suever
Ich bekomme immer noch den Fehler "Eingabe # 2 erwartet, Zell-Array zu sein, wurde stattdessen doppelt" ... Entschuldigung wahrscheinlich einfache Lösung, aber ich vermisse es – user3470496