Does blockproc() divide the image into overlapping or non-overlapping blocks?

12 vues (au cours des 30 derniers jours)
Stewart Tan
Stewart Tan le 8 Août 2019
Commenté : Guillaume le 10 Août 2019
So I'm exploring ways to split an image into blocks and applying DCT on each blocks of the image and i came across this example https://www.mathworks.com/help/images/discrete-cosine-transform.html
It uses the blockproc() function to first split the image into 8x8 blocks and apply DCT after. Is the blockproc() function dividing the image into overlapping or non-overlapping blocks since I'm working on copy move forgery detection?

Réponses (1)

Walter Roberson
Walter Roberson le 8 Août 2019
In the form used in that example, blockproc() is using non-overlapping blocks.
The blockproc option 'BorderSize' permits you to define overlapping, if you want overlapping.
'BorderSize' A 2-element vector, [V H], specifying the amount of
border pixels to add to each block. V rows are
added above and below each block, H columns are
added left and right of each block. The size of
each resulting block will be:
[M + 2*V, N + 2*H]
The default is [0 0], meaning no border.
By default, the border is automatically removed
from the result of FUN. See the 'TrimBorder'
parameter for more information.
Blocks with borders that extend beyond the edges of
the image are padded with zeros.
  2 commentaires
Stewart Tan
Stewart Tan le 8 Août 2019
Thank you. Is it possible to view the blocks image through an imshow() through blockproc(), just to see how it turned out to be?
Guillaume
Guillaume le 10 Août 2019
Note that not all combinations of window size and sliding step can be achieved this way. The window size minus the sliding step must be a multiple of 2.
Also note, that this means that the image will be automatically padded on all sides with 0s.

Connectez-vous pour commenter.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by