intensity value of the pixel located

I have this question :
1-Read an image.
2-Show that image.
3-Write the image to the disk by new name.
4-Show additional info about image.
5-How to get the size of that image.
6-What is the intensity value of the pixel located at position(4,7)?
*I solved the previous five questions, but how can I solve the sixth question
figure
image=imread('Picture2.jpg')
imshow(image)
gray = rgb2gray(image)
imwrite(image,'House.jpg');
information = imfinfo('House.jpg')
information = information.FileSize

 Accepted Answer

Aditya Verma
Aditya Verma on 27 Jun 2020
Edited: Aditya Verma on 27 Jun 2020
Your image is stored as a matrix in MATLAB. So, for getting the pixel intensity value you need to read the image:
image_mat = rgb2gray(imread('image.jpg')); % image_mat is simply a matrix
disp(image_mat(4, 7)); % Intensity at (4,7)

4 Comments

I Wrote this :
figure
image=imread('Picture3.jpg')
imshow(image)
gray = rgb2gray(image)
imwrite(image,'House.jpg');
information = imfinfo('House.jpg')
information = information.FileSize
image_mat = rgb2gray(imread('Picture3.jpg')); % image_mat is simply a matrix
disp(im(4, 7));
But I get Error in the Last line " disp(im(4, 7)); "
Undefined function or variable 'im'.
How to solve it ?
Hi, it was a mistake in my code. I have corrected it. It should be:
disp(image_mat(4, 7));
By the way, if you're new to MATLAB or programming I would recommend you to take the free MATLAB Onramp course.
The picture is colored, should I use rgb2gray()?

Sign in to comment.

More Answers (1)

Do not use image as the name of your variable. It is the name of a built-in function that you will destroy (temporarily).
The assignment did not say anything about converting to gray scale so why did you use rgb2gray()?
To get the value of a pixel, you can use impixel() or simply index it. A color image will have 3 intensities, one for each color channel.

1 Comment

Well I'm sure you saw the code in the help for impixel:
RGB = imread('peppers.png');
% Determine the column c and row r indices of the pixels to extract.
c = [1 12 146 410];
r = [1 104 156 129];
% Return the data at the selected pixel locations.
pixels = impixel(RGB,c,r)
So I'm not sure what you're asking. Do need help in modifying that code like this?
theColor = impixel(image_mat, 7, 4);
Remember it's columns that come first, not rows. But that was so easy that I'm certain you would have been able to do that simple change of putting in 7 and 4 for the column and row and changing the name of the image variable, so I'm not really sure what you're asking.

Sign in to comment.

Categories

Tags

Community Treasure Hunt

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

Start Hunting!