MATLAB: How to apply a window on an image to keep the part in the window while reduce the resolution (clarity) of the remaining part of the picture

digital image processingfilteringImage Processing Toolboxresolutionwindowing

Suppose I have an image with three circles and a line as shown below. I want to apply a trapezoidal type window (see dotted lines) over certain x axis range to preserve the resolution in that section while reducing the resolution in the remaining part of the picture

Best Answer

Use poly2mask() to make a mask of the part you want to preserve. Then blur the whole image with imfilter() or conv2(). Then replace the image in the mask with the original. Something like
[rows, columns, numberOfColorChannels] = size(grayImage);
mask = poly2mask(x, y, rows, columns);
kernel = ones(9,9);
kernel = kernel / sum(kernel(:)); % Normalize so we don't change the mean intensity of the image.
blurredImage = conv2(grayImage, kernel, 'same'); % Blurs everything, including the masked region.
blurredImage(mask) = grayImage(mask); % Restore original to the masked region.
x and y are the points of the vertices of your trapezoid.