How can I get the histeq function to ignore NaN values?
조회 수: 5 (최근 30일)
이전 댓글 표시
I have a set of 2D pictures, I want to only focus on a small blob in the middle while ignoring a sea of NaNs around it
If I keep the NaNs, histeq spits out a plain white image. Is there a way to stop NaNs from corrupting the histeq function?
thanks in advance
- Nadeem
댓글 수: 0
답변 (2개)
Ramnarayan Krishnamurthy
2017년 9월 22일
It appears that MATLAB warns you about using histeq on a matrix with NaNs and replaces them to 0.
I would suggest the following if you want to apply histeq only to non-NaN values in a matrix
% Setting up a sample image
% Use im2double as double saves NaN while uint8 converts it to 0
I = im2double(imread('cameraman.tif'));
I(1:100,1:100) = NaN
I(1:256,1:100) = NaN
I(1:256,180:end) = NaN
I(1:100,:) = NaN
I(160:end,:) = NaN
figure, imshow(I)
% Duplicate Matrix
I2 = I;
% Store the output of the contrasted stretched image in I2
I2(~isnan(I2)) = histeq(I2(~isnan(I2)));
figure, imshow(I2)
Hope this helps!
댓글 수: 0
Image Analyst
2017년 9월 22일
I wouldn't even use histeq(). I mean, WHY? It often/usually gives crummy, harsh, unnatural looking images, and it's not needed to do image analysis.
댓글 수: 0
참고 항목
카테고리
Help Center 및 File Exchange에서 Image Filtering and Enhancement에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!