当前位置: 首页 > news >正文

MATLAB应用

目录

网站

智能图像色彩缩减和量化


网站


https://yarpiz.com/


智能图像色彩缩减和量化


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

file = uigetfile 打开一个模态对话框,其中列出了当前文件夹中的文件。用户可以在这里选择或输入文件的名称。如果文件存在并且有效,当用户点击打开时,uigetfile 将返回文件名。如果用户点击取消或窗口关闭按钮 (X),uigetfile 将返回 0

当用户点击打开时,[file,path] = uigetfile 将返回文件的名称和路径。如果用户点击取消或窗口关闭按钮 (X),uigetfile 将为两个输出参数都返回 0

[file,path,indx] = uigetfile 将返回在对话框中选择的筛选器的索引。

___ = uigetfile(filter) 指定文件扩展名,根据该扩展名筛选对话框中显示的文件。可以将此语法与上述语法中的任何输出参数结合使用。

pause(n) 暂停执行 n 秒,然后继续执行。必须启用暂停,此调用才能生效。

pause(state) 启用、禁用或显示当前暂停设置。

oldState = pause(state) 返回当前暂停设置并如 state 所示设置暂停状态。例如,如果已启用暂停功能,oldState = pause('off') 会在 oldState 中返回 'on' 并禁用暂停。

提取rgb

img=imread(FullFileName);
img=im2double(img);R=img(:,:,1);
G=img(:,:,2);
B=img(:,:,3);X=[R(:) G(:) B(:)];
Z=X;

 strcmpi - 比较字符串(不区分大小写)
    此 MATLAB 函数 将比较 s1 和 s2,并忽略字母大小写差异。如果二者相同,函数将返回 1(true),否则返回 0 (false)。如果文本的大小和内容相同,则它们将视为相等,不考虑大小
写。返回结果 tf 的数据类型为 logical。

kmeans

idx = kmeans(X,k) 执行 k 均值聚类,以将 n×p 数据矩阵 X 的观测值划分为 k 个聚类,并返回包含每个观测值的簇索引的 n×1 向量 (idx)。X 的行对应于点,列对应于变量。

默认情况下,kmeans 使用欧几里德距离平方度量,并用 k-means++ 算法进行簇中心初始化。

idx = kmeans(X,k,Name,Value) 进一步按一个或多个 Name,Value 对组参数所指定的附加选项返回簇索引。例如,指定余弦距离、使用新初始值重复聚类的次数或使用并行计算的次数。

prod

B = prod(A) 返回 A 的数组元素的乘积。

  • 如果 A 是向量,则 prod(A) 返回元素的乘积。

  • 如果 A 为非空矩阵,则 prod(A) 将 A 的各列视为向量,并返回一个包含每列乘积的行向量。

  • 如果 A 为 0×0 空矩阵,prod(A) 返回 1

  • 如果 A 为多维数组,则 prod(A) 沿第一个非单一维度运算并返回乘积数组。此维度的大小将减少至 1,而所有其他维度的大小保持不变。

        如果输入 A 为 single 类型,则 prod 会计算并将 B 以 single 类型返回。如果为任何其他数值和逻辑数据类型,prod 会计算并将 B 以 double 类型返回。

B = prod(A,'all') 计算 A 的所有元素的乘积。


clc;
clear;
close all;%% Select ImageFilter={'*.jpg;*.jpeg;*.png'};[FileName, FilePath]=uigetfile(Filter);
pause(0.01);if FileName==0return;
endFullFileName=[FilePath FileName];%% Load Image DataChoices = {'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 UseHSVY=rgb2hsv(X);W=[3 1 2];for l=1:numel(W)Y(:,l)=Y(:,l)*W(l);endZ=Y;
end%% Number of Desired ColorsANSWER = inputdlg('Number of desired colors:','Color Reduction',1,{'25'});
pause(0.01);nColor = str2double(ANSWER{1});%% Select AlgorithmChoices = {'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 Clusteringif UseKMeansMethod = 'k-Means Clustering';Options.MaxIter=1000;[IDX, C]=kmeans(Z,nColor,'options',Options);
endif UseFCMMethod = 'Fuzzy Clustering (FCM)';[C, U]=fcm(Z,nColor);[MaxU, IDX]=max(U);
endif UseSOMMethod = 'SOM Neural Network';NetSize=[floor(sqrt(nColor)) ceil(sqrt(nColor))];nColor = prod(NetSize);[IDX, C]=SOM(Z,NetSize);
end%% Create Reduced ImageZ2=C(IDX,:);if UseHSVY2 = Z2;for l=1:numel(W)Y2(:,l)=Y2(:,l)/W(l);endX2=hsv2rgb(Y2);
elseX2=Z2;
endR2=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 Resultsfigure;subplot(1,2,1);
imshow(img);
title('Original Image');subplot(1,2,2);
imshow(img2);
title(['Color Reduced Image (k = ' num2str(nColor) ') using ' Method]);

http://www.lryc.cn/news/94062.html

相关文章:

  • LeetCode --- 1784. Check if Binary String Has at Most One Segment of Ones 解题报告
  • js:javascript中的事件体系:常见事件、事件监听、事件移除、事件冒泡、事件捕获、事件委托、阻止事件
  • 【数据结构】特殊矩阵的压缩存储
  • 在layui中使用vue,使用vue进行页面数据部分数据更新
  • Vue中如何进行数据导入与Excel导入
  • git 的基本操作
  • 搭建Vue项目以及项目的常见知识
  • TypeScript ~ TS Webpack构建工具 ⑦
  • Rust 自建HTTP Server支持图片响应
  • [游戏开发][Unity]UnityWebRequest使用大全
  • 如何使用Fiddler对手机进行弱网测试?(干货教程)
  • 专业科普:什么是单片机?
  • 深度学习-第T11周——优化器对比实验
  • 基于Dlib的疲劳检测系统
  • three.js通过CubeTexture加载环境贴图,和RGBELoader加载器加载hdr环境贴图
  • pycharm中Terminal输入sqlite3,出现无法将sqlite项识别为cmdlet**的解决方法
  • VSCode 安装配置教程详解包含c++环境配置方法
  • Baumer工业相机堡盟工业相机如何通过BGAPISDK将图像放大缩小显示(C#)
  • 8.1 PowerBI系列之DAX函数专题-进阶-解决列排序对计算的影响
  • Java的第十二篇文章——集合
  • docker 镜像制作 与 CI/CD
  • Spring Boot 异常报告器解析
  • 瑞亚太空活动公司RSA与英国国防与安全加速器达成量子项目合作
  • Shapley值法介绍及实例计算
  • 不用手动改 package.json 的版本号
  • gitlab Can‘t update,dev has no tracked branch
  • sql批量操作
  • 数据库监控与调优【九】—— 索引数据结构
  • 哈工大计算机网络传输层详解之:流水线机制与滑动窗口协议
  • Unity Mac最新打苹果包流程