Overlapping submatrices/sliding window and vectorization problem
6 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hello experts, I have a colored (RGB) image which I want to do the following:
- For each pixel I need to produce his 10X10 environment/neighbor pixels (lets say the pixel is in the middle) like sliding window. Thus, there will be overlaps of color images and that's what I want.
- For each 10X10 environment (or color image) I need to produce a vector according to a specific logic I have.
- Lastly, I need to save all vectors produced earlier for each pixel in some array/matrix (some structure).
FOR LOOPS are very slow in MATLAB. what you suggest me to do?
3 comentarios
Image Analyst
el 12 de Abr. de 2016
lavanya, I already gave an answer for this. Did you see it below? Did you run and adapt the demos? Use the one where I define a custom filter. In there you would put a call to graycomatrix().
Respuestas (1)
Image Analyst
el 21 de Nov. de 2015
I think you haven't given the whole story,that's what I think. Who would want a gigantic list (perhaps 1 to 20 million) of 100 element vectors? What will they be then used for. To just give you the vectors, you can use blockproc(). I have demos. You can also use nlfilter() but that will probably be slower than a for loop.
AND can we dispel the myth that for loops are very slow? I can do a hundred million for loop iterations on my computer in 0.3 seconds. Would you call that slow? That's a lot of iterations in the blink of an eye. Sure, for some operations it can be slower than vectorized solutions but I'd hardly call them VERY SLOW - that's a myth. And most questions I see here do not have anywhere near that number of iterations, not even close.
Ver también
Categorías
Más información sobre Loops and Conditional Statements en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!