Hi all,
I have an image(gray scale) whose pixel intensity values ranges from -0.5373 to 0.4744. I would like to change the intensity value which is lesser than 0 to 0. Can any one help me to solve this.
Thanks.

 Akzeptierte Antwort

Honglei Chen
Honglei Chen am 21 Feb. 2012

0 Stimmen

Say your image is x,
x(x<0) = 0;

5 Kommentare

Pugazhendhi
Pugazhendhi am 21 Feb. 2012
thanks for the quick reply. Its working and one more help how i can do it for RGB images.
thanks in advance.
Honglei Chen
Honglei Chen am 21 Feb. 2012
RGB image has 3 pages, so you need to do this for each page. If operation is the same, you can reshape it, do the conversion, and reshape back. For example
x = rand([3 3 3])-0.5;
x = reshape(x,3,[])
x(x<0)=0
reshape(x,3,[],3)
Pugazhendhi
Pugazhendhi am 21 Feb. 2012
thanks, Can you explain the role of 0.5 here.
Honglei Chen
Honglei Chen am 21 Feb. 2012
I'm just making an example, make sure there are negative numbers in x.
Image Analyst
Image Analyst am 22 Feb. 2012
No, you don't need all that reshaping stuff. "x(x<0)=0" is sufficient to work on the whole 3D matrix (e.g., a color image) - no reshaping is needed.

Melden Sie sich an, um zu kommentieren.

Weitere Antworten (2)

Walter Roberson
Walter Roberson am 21 Feb. 2012

0 Stimmen

X = max(0, X); %another way of changing anything less than 0 to 0
vishnu lohith
vishnu lohith am 16 Feb. 2018

0 Stimmen

use a suitable transformation to change the intensities from ( 0,255) to (65,180).

1 Kommentar

Image Analyst
Image Analyst am 17 Feb. 2018
Are you sure you posted to the correct six year old question? Not sure what your answer has to do with the original question about clamping the signal to zero.

Melden Sie sich an, um zu kommentieren.

Kategorien

Community Treasure Hunt

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

Start Hunting!

Translated by