Looping through a matrix with unknown dimensions

1 回表示 (過去 30 日間)
Bubbles Lol
Bubbles Lol 2019 年 9 月 9 日
コメント済み: Rena Berman 2019 年 9 月 19 日
function [r,g,b] = Distant_Pixel(n)
pixels= gallery('integerdata',54,[1,n,3],42);
[R,G,B] = Median_Pixel(n);
r = Pixel_Distance([R,G,B],[pixels(1,1),pixels(1,1,2),pixels(1,1,3)])
g = Pixel_Distance([R,G,B],[pixels(1,2),pixels(1,2,2),pixels(1,2,3)])
b = Pixel_Distance([R,G,B],[pixels(1,3),pixels(1,3,2),pixels(1,3,3)])
end
Median_Pixel and Pixel_Distance are functions.
Since n will change depending on input. How do I fix the pixels matrix so that it works with any input of n
[pixels(1,1),pixels(1,1,2),pixels(1,1,3)] -- ?
  7 件のコメント
John D'Errico
John D'Errico 2019 年 9 月 11 日
You insult the people who tried to help you by editting away your question, and you make it useless for anyone else to ever learn from the responses. We have asked the site admins to restore it.
Rena Berman
Rena Berman 2019 年 9 月 19 日
(Answers Dev) Restored edit

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

回答 (1 件)

Walter Roberson
Walter Roberson 2019 年 9 月 9 日
function [r,g,b] = Distant_Pixel(n)
pixels= gallery('integerdata',54,[1,n,3],42);
[R,G,B] = Median_Pixel(n);
r = []; g = []; b = [];
if n >= 1
r = Pixel_Distance([R,G,B],[pixels(1,1),pixels(1,1,2),pixels(1,1,3)]);
end
if n >= 2
g = Pixel_Distance([R,G,B],[pixels(1,2),pixels(1,2,2),pixels(1,2,3)]);
end
if n >= 3
b = Pixel_Distance([R,G,B],[pixels(1,3),pixels(1,3,2),pixels(1,3,3)])
end
end
  2 件のコメント
Bubbles Lol
Bubbles Lol 2019 年 9 月 9 日
The input of the function is a 1*n*3 array. Containing rgb values. I want to find the most distant rgb pixel values from those that are provided in the array. So how would I do this? and n can be any number. Thanks
Walter Roberson
Walter Roberson 2019 年 9 月 9 日
We do not know what your function Pixel_Distance does.
It is not clear what the most "distance" rgb values means in this situation, since you appear to be talking about 3 different values
Given a set of pixel values, you can take the mean or median . Now for any one median component (say the G), check to see whether the component is above or below 1/2 of the maximum possible value (e.g., 128 if the values are uint8). If the component is below 1/2 of the maximum possible, then the most distant value is the maximum possible value (e.g., 255); if the component is above 1/2 of the maximum possible, then the most distant value is the minimum possible value (e.g., 0)

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

タグ

Community Treasure Hunt

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

Start Hunting!

Translated by