while processing a code for Image enhnacement..i am getting the following error could you please explain..?

*Error using rgb2gray>parse_inputs (line 88) RGB must be a m x n x 3 array.
Error in rgb2gray (line 35) X = parse_inputs(varargin{:});*

1 Commento

I was intially trying to input some urban area image with .img format but Matlab is not supporting..??..how can i input coloured input image of urban area and extract building

Accedi per commentare.

Risposte (2)

The error says why. Your input is not RGB. Try:
size('your input')

2 Commenti

thanx for reply..but i want to actually input a urban area satlelite image..but wen i input.img image...it doesnot support
below is code for image segmentation could you please help in doin necessary changes, so that i can extract building from satellite image
im1=imread('D:\12.jp2'); %im1=rgb2gray(im); im1=medfilt2(im1,[3 3]); %Median filtering the image to remove noise% BW = edge(im1,'sobel'); %finding edges [imx,imy]=size(BW); msk=[0 0 0 0 0; 0 1 1 1 0; 0 1 1 1 0; 0 1 1 1 0; 0 0 0 0 0;]; B=conv2(double(BW),double(msk)); %Smoothing image to reduce the number of connected components L = bwlabel(B,8);% Calculating connected components mx=max(max(L)) % There will be mx connected components.Here U can give a value between 1 and mx for L or in a loop you can extract all connected components % If you are using the attached car image, by giving 17,18,19,22,27,28 to L you can extract the number plate completely. [r,c] = find(L==17); rc = [r c]; [sx sy]=size(rc); n1=zeros(imx,imy); for i=1:sx x1=rc(i,1); y1=rc(i,2); n1(x1,y1)=255; end % Storing the extracted image in an array %figure,imshow(im); figure,imshow(im1); figure,imshow(B); figure,imshow(n1,[]);

Accedi per commentare.

After you call this line
im1 = imread('D:\12.jp2');
put these lines
[rows, columns, numberOfColorChannels] = size(im1) % No semicolon
if numberOfColorChannels > 1
% Do this only if you want to convert to gray level.
im1 = rgb2gray(im1);
% Optionally, can take the green channel instead of the above line
% im1 = im1(:, :, 2);
end
What does this print out in the command window?

6 Commenti

Thanx Imran
Imran, Could you please check below code so that i can use this for building extraction
im1=imread('D:\12.jp2');
im1=rgb2gray(im);
im1=medfilt2(im1,[3 3]); %Median filtering the image to remove noise%
BW = edge(im1,'sobel'); %finding edges
[imx,imy]=size(BW);
msk=[0 0 0 0 0;
0 1 1 1 0;
0 1 1 1 0;
0 1 1 1 0;
0 0 0 0 0;];
B=conv2(double(BW),double(msk)); %Smoothing image to reduce the number of connected components
L = bwlabel(B,8);% Calculating connected components
mx=max(max(L))% There will be mx connected components.Here U can give a value between 1 and mx for L or in a loop you can extract all connected components
[r,c] = find(L==17);
rc = [r c];
[sx sy]=size(rc);
n1=zeros(imx,imy);
for i=1:sx x1=rc(i,1);
y1=rc(i,2);
n1(x1,y1)=255;
end % Storing the extracted image in an array
%figure,imshow(im);
figure,imshow(im1);
figure,imshow(B);
figure,imshow(n1,[]);
I'm not Imran, but I looked at it too. It ran (with the peppers.png demo image). Does it do what you told it to? Does it do what you expected it to?
hello..how to input a coloured image, as this is code is not allowing me to check it on coloured satellite imagery..basically what format it should be
But your code does not (yet) take into account the suggestions that I've already given you. Why not? Why do you want other methods when you aren't even trying the one I already gave?
I tried your step and it gave me the same error. I wonder if it's the fact that my image is .tiff have something to do with it. I'm just trying a basic step of getting only black and white colors. I started to try gray but that did'nt work as well.
Joe, I don't know what you did. Post your own question separately, and attach your code and image and we'll answer it there.

Accedi per commentare.

Richiesto:

il 10 Apr 2013

Commentato:

il 8 Feb 2015

Community Treasure Hunt

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

Start Hunting!

Translated by