clear all
clc
img = imread('TestImage.jpg');
frame_size = size(img);
allpixels = reshape(img, frame_size(1)*frame_size(2), frame_size(3))
[row,col] = size(allpixels);
totalPixels = 0;
count = 0;
white = 0;
black = 0;
red = 0;
green = 0;
blue = 0;
grey = 0;
purplepink = 0;
yelloworange = 0;
for row = 1:row
count = 0;
for col = 1:col
if count == 0
R = allpixels(row,col);
count = count + 1;
elseif count == 1
G = allpixels(row,col);
count = count + 1;
elseif count == 2
B = allpixels(row,col);
count = count + 1;
end
totalPixels = totalPixels + 1;
end
if R > 230 && G > 230 && B > 230
white = white + 1;
elseif R < 70 && G < 70 && B < 70
black = black + 1;
elseif abs(R - G) <= 5 && abs(G - B) <= 5 && abs(R - B) <= 5
grey = grey + 1;
elseif R > B && R > G
red = red + 1;
elseif G > B && G >= R
green = green + 1;
elseif B >= R && B >= G
blue = blue + 1;
end
end
totalPixels = totalPixels/3;
totalPixels
white
black
grey
red
green
blue
white + black + grey + red + green + blue
PercentOfWhite = (white/totalPixels)* 100
A=PercentOfWhite;
PercentOfBlack = (black/totalPixels) * 100
B=PercentOfBlack;
PercentOfGrey = (grey/totalPixels)* 100
C=PercentOfGrey;
PercentOfRed = (red/totalPixels)* 100
D=PercentOfRed;
PercentOfGreen = (green/totalPixels) * 100
E=PercentOfGreen;
PercentOfBlue = (blue/totalPixels) * 100
F=PercentOfBlue;
[x,y]=meshgrid(1:15,1:15);
tri = delaunay(x,y);
z= peaks(15);
trisurf(tri,x,y,z)
위의 코드는 3D 그래프를 표시합니다. 그러나 유용한 데이터는 표시하지 않습니다. 예를 들어, TestImage.jpg라는 이미지를 삽입했습니다. 80 % 빨간색이었고 3D 그래프가 나타났습니다. 그런 다음 80 % 파란 다른 이미지를 시도해 보았습니다. 그래프가 나타나고 이전에 테스트 한 이미지와 비슷하게 보입니다. 나는 내 코드가 어떤 이미지도 읽지 않는다는 결론을 내 렸으며, 실제 데이터 결과가없는 3D를 무작위로 표시하고있다. 실제로 내 이미지를 읽고 유용한 데이터를 표시하는 3D 그래프를 표시하도록 코드를 수정하는 방법에 대한 제안이미지의 3D 그래프를 어떻게 표시합니까? On MATLab
코드에 2D 그래프가 표시됩니다. 3D 그래프가 아닌 2D 그래프를 만드는 방법을 알고 있습니다. –
3D 그래프를 만들 수 있다고 생각하십니까? –
3D 그래프에 대해 무엇을 갖고 싶습니까? x, y, z 축에 무엇이 있어야할까요? –