我正在處理類似於以下的圖像:a cell image,並且我只想提取紅粉色部分。截至目前,我使用img(:,:,1)
來提取紅色值,但這會產生一個二進制圖像。我想知道是否有辦法提取「紅色」值並根據其「紅色」或強度程度生成灰度圖像。任何幫助都是極好的。基於一個顏色通道的強度將RGB圖像轉換爲灰度
回答
您很可能使用imshow
顯示結果,它會自動將軸的顏色限制設置在0
和1
之間。您的圖像是RGB,紅色通道的值將從0
到255
。因此,如果您只指定一個輸入到imshow
,您將得到一個圖像,其中所有值>1
將顯示爲白色,並且所有零值均爲黑色。所以你的圖像並不是真正的二進制,它只是出現那種方式。
你想要麼imagesc
顯示您的圖片,它會自動縮放顏色範圍來匹配數據:
imagesc(img(:,:,1));
colormap gray
或者,您可以指定第二個輸入imshow
以使其也擴展到適合你的數據範圍:
imshow(img(:,:,1), [])
的原因,這是不是當你所有的可視化頻道的問題是,如果你指定的紅色,綠色和藍色通道,這被認爲是真彩色圖像,所有軸色麗米特被忽略。
您捕獲的數據將是正確的(並且是灰度),但可視化可能不正確。當試圖想象一個二維矩陣(與你的結果img(:,:,1)
),MATLAB應用默認顏色映射,其結果是:
[x,y]=meshgrid(1:200, 1:200);
z=x.^2.*sin(y/max(y(:))*pi);
figure;imagesc(z);
如果你想避免應用jet
顏色表,要麼改變顏色表:
colormap('gray')
或更改2D矩陣成3D一個,明確地指定的顏色顯示(必須是與0之間的值1):
z3d = z(:,:,[1 1 1]); % more efficient than repmat
z3d = (z3d - min(z(:)))./range(z(:)); % make sure values in range [0; 1]
你看到條帶在顏色表的版本,因爲默認情況下一個顏色表contains 64 different colors; 3D矩陣版本沒有這個問題,因爲它直接顯示顏色。
如果我可以添加到您的問題,在我看來,你只是試圖分離(或組合)分離和可視化的紅色,綠色和藍色fluorofores。我特別認爲這是因爲你提到'粉紅'。
這可能是更好的只是隔離通道:
>> F_red = F; F_red(:,:,[2,3]) = 0;
>> F_green = F; F_green(:,:,[1,3]) = 0;
>> F_blue = F; F_blue(:,:,[1,2]) = 0;
>> F_pink = F; F_pink(:,:,2) = 0;
這裏有結果的次要情節:
此外,你應該知道,生產的「天真」的方式灰度圖像不會保留人眼所感知的顏色的「亮度」,因爲與「紅色」和「藍色」相同強度的「綠色」實際上將被視爲由更亮的亮度爲人類的眼睛,同樣的「紅色」比「藍色」更亮。 Matlab提供了一個rgb2gray
函數,它將rgb圖像轉換爲正確保持亮度的灰度圖像。這與您的純粹的紅色,綠色和藍色轉換無關,但對於「粉紅色至灰度」圖像可能需要考慮一些問題。例如,比較下面的兩張圖片,您會看到細微的對比差異。
>> F_pinktogray_naive = mean(F(:,:,[1,3]), 3);
>> F_pinktogray_luminance = rgb2gray(F_pink);
兩個次要情節:
在某種意義上,你可能更關心的左邊(幼稚)之一,因爲你不關心的粉紅的轉換一個灰色的「視覺」,但你更關心的是紅色和藍色的氟化物在灰度圖像上的強度是「可比較的」(因爲它們代表測量值而不是視覺場景)。但在將rgb圖像轉換爲灰度圖時需要牢記這一點。
對不起,爲了澄清,底部圖像是一個灰度圖像,只是用'熱'地圖可視化,我認爲結果比灰色地圖更直觀。此外,圖像是用'imagesc'生成的,這意味着這些值被縮放(即最低爲0,最高爲1)。如果你不關心縮放比例(例如,imshow允許你指定這樣的限制,或者你可以簡單地將灰度通道複製到所有rgb通道,這樣你就有一個灰色'rgb圖像,因此imagesc不會縮放,但會將它們解釋爲rgb)。 –
- 1. 將RGB圖像轉換爲灰度和灰度轉換爲RGB圖像?
- 2. 將RGB轉換爲灰度?
- 3. 轉換灰度圖像爲RGB
- 4. 轉換爲灰度圖像到RGB
- 5. 如何用全綵色將灰度圖像轉換爲rgb?
- 6. 手動將RGB RGB圖像轉換爲灰度圖
- 7. 將彩色圖像轉換爲灰度
- 8. 將灰度圖像轉換爲彩色
- 9. 強度到RGB顏色轉換器,matlab
- 10. 如何將RGB圖像轉換爲灰度圖像?
- 11. 使用matplotlib將灰度圖像轉換爲RGB熱圖像
- 12. 如何將灰度圖像轉換爲RGB圖像?
- 13. 如何將顏色轉換爲openCV中的灰度圖像?
- 14. 如何將灰度圖像轉換爲Java中的顏色?
- 15. 使用顏色矩陣僅使用藍色通道將顏色位圖轉換爲灰度圖像
- 16. 轉換RGB RasterBrick爲灰度
- 17. 將YUV圖像轉換爲灰度圖像 - 與RGB轉換爲灰度相同的結果?
- 18. 將圖像轉換爲灰度圖像
- 19. 將合併的RGB圖像轉換爲灰度OPENCV ANDROID
- 20. 將灰度值轉換爲RGB表示?
- 21. 將灰度JPEG轉換爲RGB JPEG
- 22. 如何通過使用顏色尺寸將RGB轉換爲灰度
- 23. Android將位圖轉換爲灰度,但保留一種顏色
- 24. 使用imagemagick將JPG圖像從灰度轉換爲RGB
- 25. 使用數組矩陣將圖像轉換爲灰度RGB java
- 26. 我需要將圖像轉換爲灰度,然後將灰度範圍着色爲新顏色
- 27. 在c中將灰度部分透明的圖像轉換爲單一顏色#
- 28. 將簡單圖像轉換爲灰度
- 29. 將圖像轉換爲灰度
- 30. jQuery將圖像轉換爲灰度?
它不應該產生一個二進制圖像。你爲什麼認爲它是二元的?嘗試'imagesc(img(:,:1))' – Suever