Splitting an image into smaller regions

Hi Guys,
I'm working on a code that creates an RGB descriptor for visual search. i've managed to implement the rgb descriptor on the whole image. but i wanted to experiment by splitting the same image up into smaller areas and rerun the experiment by calculating the rgb descriptor on smaller parts of the image.
the reason behind this, is because i'm using a query image against a dataset in order to find visually similar results. but if i split up my image into smaller pieces, i got a feeling it will be more accurate.
my question is, is there a function or piece of code that could help me with this?
Thanks

Plus de réponses (2)

jonas
jonas le 26 Fév 2018
Modifié(e) : jonas le 26 Fév 2018

0 votes

Use mat2cell()
Example:
%Load 256x256 grayscale image and divide in 4x4 equally sized subimages
n=4;
I = imread('cameraman.tif');
I_sub=mat2cell(I,ones(1,n)*256/n,ones(1,n)*256/n)
repeat for each RGB channel
hasan alhussaini
hasan alhussaini le 17 Mar 2018

0 votes

Hi Image Analyst.
I've altered your code to put each block of the image in a bin named F{r,c}.
and F{r,c} is a cell of 2x4, each part representing a part in the image. i want to make a final bin called Fbin that is the sum of the bins created in each section of F{r,c}.
just a reminder of the code i used. http://matlab.wikia.com/wiki/Split_image_into_blocks
i used the first method of dividing an image into blocks using mat2cell.

4 commentaires

OK. Good luck. Though wouldn't the final sum, Fbin, simply be the sum of all pixel values in the image? Just do
Fbin = sum(yourImage(:));
I also don't know why you're using cells instead of a regular numerical array. Why complicate things?
By the way, they are called "cells", not "bins". Bins are usually names for histograms, which are frequency distributions.
hasan alhussaini
hasan alhussaini le 17 Mar 2018
Thank you, i'm not sure if thats what i quite had in mind. basically I've altered your code that splits an image, so now what it does is calculates the frequency RGB histogram for the each block that was split up from the image. now i have a 2x4 cell where each one (e.g (1,1)(1,2)(1,3)(1,4) (2,1)(2,2) (2,3)(2,4) consists of a Frequency bin. i'm trying to make Fbin = the sum of all those bins? if that makes sense
Thanks
Image Analyst
Image Analyst le 17 Mar 2018
So you have 2x4 = 8 total histograms, and you want to sum all the bins to get the histogram of the complete array? Well, if so, that would simply be the histogram of the entire, complete image. Why should it be any different??? Then if you sum that histogram, it's simply the sum of all pixel values. Again, why do you expect anything different?
hasan alhussaini
hasan alhussaini le 17 Mar 2018
It's part of a requirement. My task is to compare between splitting an image into sections vs the whole image. But i don't know how to sum the histograms

Connectez-vous pour commenter.

Catégories

En savoir plus sur Deep Learning Toolbox dans Centre d'aide et File Exchange

Community Treasure Hunt

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

Start Hunting!

Translated by