replace RGB values with new values

1 回表示 (過去 30 日間)
Elysi Cochin
Elysi Cochin 2022 年 5 月 25 日
編集済み: Elysi Cochin 2022 年 5 月 25 日
How to change the pixel values of a RGB image to
% if pixel value is in the following range
0-64 to 0
65-128 to 1
129-192 to 2
192-255 to 3
How to change in all the channels without using for loop

採用された回答

Dyuman Joshi
Dyuman Joshi 2022 年 5 月 25 日
編集済み: Dyuman Joshi 2022 年 5 月 25 日
rgb=[67,68,69;0,67,69;0,66,68;125,126,127;122,125,127;117,122,126;113,114,115;110,113,115;106,111,114]
rgb = 9×3
67 68 69 0 67 69 0 66 68 125 126 127 122 125 127 117 122 126 113 114 115 110 113 115 106 111 114
floor(abs(rgb-1)/64)
ans = 9×3
1 1 1 0 1 1 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
  2 件のコメント
DGM
DGM 2022 年 5 月 25 日
If the input is properly uint8 class, then the output won't be as expected. So long as the input is at least scaled [0 255], the following should work regardless of input class, and the output will be cast properly for the scale.
uint8(floor(abs(double(rgb)-1)/64))
Elysi Cochin
Elysi Cochin 2022 年 5 月 25 日
編集済み: Elysi Cochin 2022 年 5 月 25 日
Thank you both of you. For uint8 @DGM comment should be considered.

サインインしてコメントする。

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeImage Processing Toolbox についてさらに検索

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by