0
点赞
收藏
分享

微信扫一扫

如何让自动化测试框架更自动化?

徐一村 2023-06-21 阅读 38

目录

网站

智能图像色彩缩减和量化


网站


https://yarpiz.com/


智能图像色彩缩减和量化


        使用智能聚类方法:(a)k均值算法,(b)模糊c均值聚类(FCM)和(c)自组织神经网络,使用 RGB 和 HSV 颜色编码来执行聚类任务。


clc;
clear;
close all;

%% Select Image

Filter={'*.jpg;*.jpeg;*.png'};

[FileName, FilePath]=uigetfile(Filter);
pause(0.01);

if FileName==0
return;
end

FullFileName=[FilePath FileName];

%% Load Image Data

Choices = {'RGB', 'HSV'};

ANSWER = questdlg('Select the color coding:', ...
'Color Coding', ...
Choices{1}, Choices{2}, ...
Choices{1});
pause(0.01);

img=imread(FullFileName);
img=im2double(img);

R=img(:,:,1);
G=img(:,:,2);
B=img(:,:,3);

X=[R(:) G(:) B(:)];
Z=X;

UseHSV = strcmpi(ANSWER, 'HSV');

if UseHSV
Y=rgb2hsv(X);
W=[3 1 2];
for l=1:numel(W)
Y(:,l)=Y(:,l)*W(l);
end
Z=Y;
end

%% Number of Desired Colors

ANSWER = inputdlg('Number of desired colors:','Color Reduction',1,{'25'});
pause(0.01);

nColor = str2double(ANSWER{1});

%% Select Algorithm

Choices = {'k-Means Clusterin', 'Fuzzy Clustering (FCM)', 'SOM Network'};

ANSWER = questdlg('Select the clustering algorithm:', ...
'Color Coding', ...
Choices{1}, Choices{2}, Choices{3}, ...
Choices{1});
pause(0.01);

UseKMeans = strcmpi(ANSWER, Choices{1});
UseFCM = strcmpi(ANSWER, Choices{2});
UseSOM = strcmpi(ANSWER, Choices{3});

%% Perform Clustering

if UseKMeans
Method = 'k-Means Clustering';
Options.MaxIter=1000;
[IDX, C]=kmeans(Z,nColor,'options',Options);
end

if UseFCM
Method = 'Fuzzy Clustering (FCM)';
[C, U]=fcm(Z,nColor);
[MaxU, IDX]=max(U);
end

if UseSOM
Method = 'SOM Neural Network';
NetSize=[floor(sqrt(nColor)) ceil(sqrt(nColor))];
nColor = prod(NetSize);
[IDX, C]=SOM(Z,NetSize);
end

%% Create Reduced Image

Z2=C(IDX,:);

if UseHSV
Y2 = Z2;
for l=1:numel(W)
Y2(:,l)=Y2(:,l)/W(l);
end
X2=hsv2rgb(Y2);
else
X2=Z2;
end

R2=reshape(X2(:,1),size(R));
G2=reshape(X2(:,2),size(G));
B2=reshape(X2(:,3),size(B));

img2=zeros(size(img));
img2(:,:,1)=R2;
img2(:,:,2)=G2;
img2(:,:,3)=B2;

%% Show Results

figure;

subplot(1,2,1);
imshow(img);
title('Original Image');

subplot(1,2,2);
imshow(img2);
title(['Color Reduced Image (k = ' num2str(nColor) ') using ' Method]);

举报

相关推荐

0 条评论