Changing pixel color to white
조회 수: 26 (최근 30일)
이전 댓글 표시
Hi, I am a newbee to Matlab. I want to change the brown color of every red blood cells into white. Could someone please help me how to do it? I want to read every pixel in image, and, if it found this color in the image, then the program should change it to white color. Thanks in advance.
댓글 수: 0
채택된 답변
Image Analyst
2014년 11월 25일
Are you sure you want to turn them into pure, solid white? Why do you want to do this? Do you want to estimate background? If you do want pure white, just take the green channel (which will give you the best contrast, not the red channel obviously) and threshold around 121 to create a mask. Then use the mask to set all three color channels to 255.
If you want a better job, then do color segmentation like in my File Exchange.
댓글 수: 5
Image Analyst
2014년 11월 25일
You need to do color segmentation. Changing the brown cells to white is not the correct approach. If you have the stats toolbox, try this demo: http://www.mathworks.com/products/demos/image/color_seg_k/ipexhistology.html
If you don't have that toolbox, try to tweak the settings in my "Simple color detection by hue" demo here: http://www.mathworks.com/matlabcentral/fileexchange/?term=authorid%3A31862
추가 답변 (1개)
Meghana Dinesh
2014년 11월 25일
I assume your image is an RGB image. Use this to get only the red plane:
Image_r = Image(:,:,1)
You have to know the intensity value of the color which you wish to replace.
You can use the 'find' command in MATLAB.
ind_plain = find(Image_r == old_value);
Image_new (ind_plain) = new_value;
댓글 수: 3
Meghana Dinesh
2014년 11월 25일
Out of the MXNX3 (24 bit) image, this extracts the first plane, i.e., Red plane:
Image_r = Image(:,:,1)
Suppose the value of "brown pixel" that you want to replace is 120.
ind_plain = find(Image_r == 120);
"ind_plain" contains the indices of all pixels with those values
Image_r (ind_plain) = 255
Now, the corresponding pixels in red plane is changed to 255.
Similarly, extract the blue and green planes:
Image_Blue = Image(:,:,2);
Image_Green = Image(:,:,3);
Replace the same pixel indices with 255 (for white, R, G and B is 255)
Image_Blue (ind_plain) = 255;
Image_Green(ind_plain) = 255;
New_image = (Image_r, Image_Blue,Image_Green)
To get a better understanding, you can execute these and observe the results in each stage.
참고 항목
카테고리
Help Center 및 File Exchange에서 Biomedical Imaging에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!