Dividing a binary image into 8x8(64) blocks and storing no of black points in each block into an 8x8 matrix
    5 visualizaciones (últimos 30 días)
  
       Mostrar comentarios más antiguos
    
I want to divide a binary image into 8x8(64) blocks. Then I need to count the no. of black points in each block and stored them into an 8x8 matrix. My image has the size of 120x120. Please help me to do this.
1 comentario
  Matt J
      
      
 el 11 de Jul. de 2015
				If your image is 120x120, then the final result should be 15x15, not 8x8.
Respuestas (3)
  Image Analyst
      
      
 el 11 de Jul. de 2015
        Simply define a function to count zeros:
ZeroCounterFunction = @(theBlockStructure) sum(theBlockStructure.data(:) == 0);
Then call blockproc():
blockSize = [8 8];
blockyImage8 = blockproc(grayImage, blockSize, ZeroCounterFunction);
Attached is a full demo that will create this image:

2 comentarios
  bio lim
      
 el 12 de Jul. de 2015
				If the answers helped you, you should accept the answer that helped you the most.
  Matt J
      
      
 el 13 de Jul. de 2015
        
      Editada: Matt J
      
      
 el 13 de Jul. de 2015
  
      For large arrays, I suspect that the following, which uses SEPBLOCKFUN ( Dowload ) will be the fastest method, since it essentially requires only reshaping to get at the blocks,
   counts = 64-sepblockfun(yourImage,[8,8],@sum)
0 comentarios
Ver también
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!



