Generate Overlapping Patches and Reconstruct the Image
Version 1.0.0 (4 ko) par
Michael Alvarez
Generate overlapping patches from an input image, and then recover the image by smoothly fusing the overlap regions.
This script demonstrates how to create overlapping patches from an image and subsequently combine them back into a single image. The process involves two main functions:
1. image2patch_overlap: This function takes an input image and divides it into overlapping patches. It requires the following parameters:
- `imageIn`: The input image to be divided.
- `deltaX`, `deltaY`: The step sizes in the x and y directions, respectively.
- `overlap`: The amount of overlap between adjacent patches.
The function outputs the generated patches, updated dimensions, and the indices `iX` and `iY` that mark the positions of the patches.
2. patch_overlap2image: This function takes the overlapping patches and combines them back into a single image. It requires the following parameters:
- `patchs`: The input patches to be combined.
- `iX`, `iY`: The indices marking the positions of the patches.
- `overlap`: The amount of overlap between adjacent patches.
- `show_masks`: A flag to indicate whether to display the masks used for combining the patches.
The function outputs the reconstructed image and the updated dimensions.
Additionally, the script includes a helper function `my_sigmoid`, which defines the sigmoid operation commonly used in various computations. The sigmoid function provides the weighted values for the overlap regions, ensuring a perfect match between the patches.
% This script is an example of create patches of an image that are overlaped and after combined
%
%
% Michael Alvarez
% michael.alvarez2@upr.edu
% -------------------------------------------------------------------------
close all
close all
clear
% Example of path images with overlap
X = imread('cameraman.tif');
figure, imagesc(X), title('Original'), axis square,
deltaX = 70 ;
deltaY = 70;
overlap = 10 ;
[ patchs , mn_new1 , iX , iY ] = image2patch_overlap( X , deltaX , deltaY , overlap) ;
% show the patches
figure,
cont_subplot = 0 ;
for row = 1 : size( iX , 1 )
for col = 1 : size( iY , 1 )
cont_subplot = cont_subplot + 1 ;
subplot( size( iX , 1 ) , size( iY , 1 ) , cont_subplot ),
imagesc( patchs(:,:,:,cont_subplot) ), axis off, axis square,
end
end
% the last input in patch_overlap2image function is to show the masks that
% I use to combine the patchs making an smoth transition between the patchs
[ imageOut , mn_new2 ] = patch_overlap2image( patchs , iX , iY , overlap , 1 ) ;
figure, imagesc( imageOut ), title('Recover'), axis square,
Note: The final size of the recovered image can be smaller than the original image because the last pixels in columns and rows are intentionally removed to avoid creating patches with more overlap than defined by the variable 'overlap'.
Author: Michael Alvarez
Email: michael.alvarez2@upr.edu
Citation pour cette source
Michael Alvarez (2024). Generate Overlapping Patches and Reconstruct the Image (https://www.mathworks.com/matlabcentral/fileexchange/166391-generate-overlapping-patches-and-reconstruct-the-image), MATLAB Central File Exchange. Récupéré le .
Compatibilité avec les versions de MATLAB
Créé avec
R2020b
Compatible avec toutes les versions
Plateformes compatibles
Windows macOS LinuxTags
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Découvrir Live Editor
Créez des scripts avec du code, des résultats et du texte formaté dans un même document exécutable.
Version | Publié le | Notes de version | |
---|---|---|---|
1.0.0 |