A ’BGR’ image.

26 views (last 30 days)
Ben Ma
Ben Ma on 8 Sep 2021
Answered: Image Analyst on 9 Sep 2021
a 3x3 Gaussian filter with BGR image Thanks.

Accepted Answer

Constantino Carlos Reyes-Aldasoro
Hello:
First, changing channels is very simple you just need to change the third dimension of the image, e.g.
image1=imread('peppers.png');
imagesc(image1)
Now, let's change channels from RGB to BGR:
image2(:,:,1) = image1(:,:,3);
image2(:,:,2) = image1(:,:,2);
image2(:,:,3) = image1(:,:,1);
imagesc(image2)
Now in terms of the filtering with a Gaussian, if you apply a 3x3 to every channel, that would be the same if you do in RGB or in BGR as you are averaging pixels in a channel.
Hope that answers your question.
  2 Comments
Ben Ma
Ben Ma on 9 Sep 2021
Can you also apply a 3x3 Gaussian filter to the original RGB image please? thanks
Constantino Carlos Reyes-Aldasoro
Yes, you can apply the filter to the original or to the transformed. E.g. to apply to the RGB you do the following:
image1=imread('peppers.png');
image1_filtered = imfilter(image1, fspecial('Gaussian',3,1));
figure
subplot(221)
imagesc(image1)
subplot(222)
imagesc(image1_filtered)
subplot(223)
imagesc(image1(100:150,100:150,:))
subplot(224)
imagesc(image1_filtered(100:150,100:150,:))
If you want to apply to the transformed, do the same once it has been transformed.

Sign in to comment.

More Answers (1)

Image Analyst
Image Analyst on 9 Sep 2021
Ben, you can use imgaussfilt(). It's very straightforward but let us know if you can't figure out my code below.
clc; % Clear the command window.
clear all;
close all;
workspace; % Make sure the workspace panel is showing.
format short g;
format compact;
fontSize = 15;
fprintf('Beginning to run %s.m ...\n', mfilename);
rgbImage = imread('peppers.png');
subplot(2, 1, 1);
imshow(rgbImage);
title('Original Image', 'FontSize', fontSize);
% Split into channels.
[r, g, b] = imsplit(rgbImage);
% Blur each channel.
sigma = 9; % Whatever.
smoothr = imgaussfilt(r, sigma);
smoothg = imgaussfilt(g, sigma);
smoothb = imgaussfilt(b, sigma);
% Combine individual blurred color channels into a new RGB image.
blurredImage = cat(3, smoothr, smoothg, smoothb);
% Display the blurred image.
subplot(2, 1, 2);
imshow(blurredImage);
caption = sprintf('Blurred with a sigma of %.1f', sigma);
title(caption, 'FontSize', fontSize);

Categories

Find more on Image Processing and Computer Vision in Help Center and File Exchange

Tags

Community Treasure Hunt

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

Start Hunting!