官术网_书友最值得收藏!

Thresholding color images

Another technique we have already covered, that is changed in the task of color image processing, is image thresholding. Color images must be thresholded in each channel separately using a proper threshold and then the results must be combined together. Let's try to do this using the automated Otsu thresholding technique we presented in Chapter 2, Working with Pixels in Grayscale Images.

First, the color channels should be thresholded one by one. Let's see how, writing a script under the name ColorOtsuThresholding.m:

img_color = imread('my_image_color.bmp'); % Load image
red = im2bw(img_color(:,:,1)); % Threshold red channel
green = im2bw(img_color(:,:,2)); % Threshold green channel
blue = im2bw(img_color(:,:,3)); % Threshold blue channel
bin_image_or = red | green | blue; % Find union using OR
bin_image_and = red & green & blue; % Find intersection using AND
subplot(1,3,1),imshow(img_color),title('Original Image')
subplot(1,3,2),imshow(bin_image_or),title('Binary Union Image')
subplot(1,3,3),imshow(bin_image_and),title('Binary Intersection Image')

Running this script gives the following result:

Note that the union of two or more binary images can be acquired using the OR operator, which in MATLAB, is denoted by symbol "|". Applying this operator to two binary images, results in an image that contains ones in those pixels that are equal to one in at least one of the two images. The AND operator denoted by symbol "&" leads to a resulting image that contains ones in those pixels that are equal to one in both images. Depending on the task, one method could be preferable to the other. Let's try to illustrate the difference with an example.

主站蜘蛛池模板: 杨浦区| 海盐县| 和顺县| 霸州市| 澄江县| 什邡市| 龙门县| 桃江县| 武安市| 诸暨市| 谢通门县| 新蔡县| 漳浦县| 西贡区| 南阳市| 盘山县| 九寨沟县| 铜山县| 宁陵县| 都兰县| 大丰市| 察雅县| 怀柔区| 镇江市| 房产| 龙游县| 通江县| 新民市| 乐昌市| 拉萨市| 健康| 荃湾区| 察隅县| 马尔康县| 梧州市| 鄂州市| 砀山县| 肇源县| 襄垣县| 岑溪市| 兴化市|