Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

roifilt2

Filter region of interest (ROI) in image

Syntax

J = roifilt2(h, I, BW)
J = roifilt2(I, BW, fun)

Description

J = roifilt2(h, I, BW) filters the data in I with the two-dimensional linear filter h. BW is a binary image the same size as I that defines an ROI used as a mask for filtering. roifilt2 returns an image that consists of filtered values for pixels in locations where BW contains 1's, and unfiltered values for pixels in locations where BW contains 0's. For this syntax, roifilt2 calls filter2 to implement the filter.

J = roifilt2(I, BW, fun) processes the data in I using the function fun. The result J contains computed values for pixels in locations where BW contains 1's, and the actual values in I for pixels in locations where BW contains 0's. fun must be a function handle. Parameterizing Functions, in the MATLAB Mathematics documentation, explains how to provide additional parameters to the function fun.

Class Support

For the syntax that includes a filter h, the input image can be logical or numeric, and the output array J has the same class as the input image. For the syntax that includes a function, I can be of any class supported by fun, and the class of J depends on the class of the output from fun.

Examples

This example continues the roipoly example, filtering the region of the image I specified by the mask BW. The roifilt2 function returns the filtered image J, shown in the following figure.

Filter Image Using Polygonal Mask

Read an image into the workspace.

I = imread('eight.tif');

Define the vertices of the mask polygon.

c = [222 272 300 270 221 194];
r = [21 21 75 121 121 75];

Create the binary mask image.

BW = roipoly(I,c,r);

Filter the region of the image I specified by the mask BW.

H = fspecial('unsharp');
J = roifilt2(H,I,BW);

Display the original image and the filtered image.

imshow(I)

figure
imshow(J)

Introduced before R2006a

Was this topic helpful?