当前位置: 首页 > 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]);

相关文章:

MATLAB应用

目录 网站 智能图像色彩缩减和量化 网站 https://yarpiz.com/ 智能图像色彩缩减和量化 使用智能聚类方法:(a)k均值算法,(b)模糊c均值聚类(FCM)和(c)自组织神…...

LeetCode --- 1784. Check if Binary String Has at Most One Segment of Ones 解题报告

Given a binary string s ​​​​​without leading zeros, return true​​​ if s contains at most one contiguous segment of ones. Otherwise, return false. Example 1: Input: s = "1001" Output: false Explanation: The ones do not form a contiguous s…...

js:javascript中的事件体系:常见事件、事件监听、事件移除、事件冒泡、事件捕获、事件委托、阻止事件

参考资料 事件介绍Element事件 目录 常见的事件鼠标事件键盘事件Focus events 添加事件监听方式一:addEventListener()(推荐)方式二:事件处理器属性方式三:内联事件处理器(不推荐) 移除监听器方…...

【数据结构】特殊矩阵的压缩存储

🎇【数据结构】特殊矩阵的压缩存储🎇 🌈 自在飞花轻似梦,无边丝雨细如愁 🌈 🌟 正式开始学习数据结构啦~此专栏作为学习过程中的记录🌟 文章目录 🎇【数据结构】特殊矩阵的压缩存储&#x1f38…...

在layui中使用vue,使用vue进行页面数据部分数据更新

layui是一款非常优秀的框架,使用也非常的广泛,许多后台管理系统都使用layui,简单便捷,但是在涉及页面部分数据变化,就比较难以处理,比如一个页面一个提交页,提交之后部分数据实时进行更新&#…...

Vue中如何进行数据导入与Excel导入

Vue中如何进行数据导入与Excel导入 Vue是一款非常流行的JavaScript框架,它提供了一套用于构建用户界面的工具和库。在Vue中,我们可以使用多种方式来导入数据,包括从服务器获取数据、从本地存储获取数据、从文件中读取数据等等。其中&#xf…...

git 的基本操作

1. git建立本地仓库 在想要建立的目录下输入命令 git init 我们可以看一下 .git目录下有什么 2. 配置git本地仓库 配置用户的 name 和 email 命令:git config [...] 配置完后,我们像查看一下 刚才的配置 2.1 查看配置命令 git config -l 2.2 删除…...

搭建Vue项目以及项目的常见知识

前言:使用脚手架搭建vue项目,使用脚手架可以开发者能够开箱即用快速地进行应用开发而开发。 搭建 #创建一个基于 webpack 模板的新项目 vue init webpack my-project #选择所需要的选项如图: cd my-project npm run dev访问localhost:808…...

TypeScript ~ TS Webpack构建工具 ⑦

作者 : SYFStrive 博客首页 : HomePage 📜: TypeScript ~ TS 📌:个人社区(欢迎大佬们加入) 👉:社区链接🔗 📌:觉得文章不错可以点点关注 &…...

Rust 自建HTTP Server支持图片响应

本博客是在杨旭老师的 rust web 全栈教程项目基础上进行修改,支持了图片资源返回,杨旭老师的rust web链接如下: https://www.bilibili.com/video/BV1RP4y1G7KFp1&vd_source8595fbbf160cc11a0cc07cadacf22951 本人默认读者已经学习了相关…...

[游戏开发][Unity]UnityWebRequest使用大全

首先记录个小问题 使用new UnityWebRequest的方式,最终的downloadHandler是个null 使用UnityWebRequest.Get的方式,最终的downloadHandler会是DownloadHandlerBuffer 从网站或本地下载内容,包括文本或二进制数据 IEnumerator downloadfile(st…...

如何使用Fiddler对手机进行弱网测试?(干货教程)

1.首先,fiddler连接手机 1)Tools->Options->Connections->设置端口8888,勾选Allow remote computers to connect 2)配置手机 注:手机和电脑需要在同一局域网下 手机进入网络详情,将代理改为手动 设置主机名、端口 主机…...

专业科普:什么是单片机?

一、什么是单片机 单片机诞生于20世纪70年代末,它是指一个集成在一块芯片上的完整计算机系统。单片机具有一个完整计算机所需要的大部分部件:CPU、内存、内部和外部总线系统,目前大部分还会具有外存。同时集成诸如通讯接口、定时器&#xff…...

深度学习-第T11周——优化器对比实验

深度学习-第T11周——优化器对比实验 深度学习-第T11周——优化器对比实验一、前言二、我的环境三、前期工作1、导入数据集2、查看图片数目3、查看数据 四、数据预处理1、 加载数据1、设置图片格式2、划分训练集3、划分验证集4、查看标签 2、数据可视化3、检查数据4、配置数据集…...

基于Dlib的疲劳检测系统

需要源码的朋友可以私信我 基于Dlib的疲劳检测系统 1、设计背景及要求2、系统分析3、系统设计3.1功能结构图3.2基于EAR、MAR和HPE算法的疲劳检测3.2.1基于EAR算法的眨眼检测3.2.2基于MAR算法的哈欠检测3.3.3基于HPE算法的点头检测 4、系统实现与调试4.1初步实现4.2具体实现过程…...

three.js通过CubeTexture加载环境贴图,和RGBELoader加载器加载hdr环境贴图

一、使用CubeTexture进行环境贴图 1.CubeTexture使用介绍 Three.js中可以通过使用CubeTexture进行环境贴图,CubeTexture需要将6张图片(正面、反面、上下左右)包装成一个立方体纹理。下面是一个简单的例子: 首先需要加载六张贴图…...

pycharm中Terminal输入sqlite3,出现无法将sqlite项识别为cmdlet**的解决方法

前提:本机上已安装sqlite3,安装详见:pycharm社区版中安装配置sqlite3_Sunshine_0426的博客-CSDN博客 问题: cmd命令行中或pycharm中Terminal行输入sqlite3 db.sqlite3命令后,出现“无法将“sqlite3”项识别为 cmdlet…...

VSCode 安装配置教程详解包含c++环境配置方法

vscode安装教程及c环境配置详解 vscode下载安装下载C扩展插件VScode C环境配置配置环境变量检查 MinGW 安装配置编译器:配置构建任务检查是否安装了编译器配置完毕 vscode下载安装 地址:官网下载地址 直接打开下载好的.exe文件进行安装即可&#xff0…...

Baumer工业相机堡盟工业相机如何通过BGAPISDK将图像放大缩小显示(C#)

Baumer工业相机堡盟工业相机如何通过BGAPISDK将图像放大缩小显示(C#) Baumer工业相机Baumer工业相机BGAPISDK和图像放大缩小的技术背景Baumer工业相机通过BGAPISDK将相机图像图像放大缩小功能1.引用合适的类文件2.通过BGAPISDK将相机图像图像放大缩小功能…...

8.1 PowerBI系列之DAX函数专题-进阶-解决列排序对计算的影响

需求 下列矩阵中,在月份列不按照原始数据的month_no排列时,能正确计算销售额占比,但是当月份按照month_no排序时就会出错,需要解决这个问题。 实现 month % divide([amount],calculate([amount],all(date[month desc]))) //排…...

从怀疑到真香!2026我日常办公离不开的这款在线文字转换器太好用了

刚入职那半年我踩过太多坑:一周三次新人培训,怕漏记知识点全程录音,下课手动整理1小时录音要熬3小时,知识点散得根本没法复习;部门周会做完记录,散会就要我出整理好的纪要,赶工赶得饭都吃不上&a…...

Python基础语法:访问器@property和修改器@xxx.setter

一、简介 访问器和修改器也是装饰器的一种。 property: 访问器,getter xxx.setter: 修改器,setter 访问器和修改器的根本目的是想将属性私有化,提供getter&setter去访问。 访问器和修改器能够做到访问属性其实在调用getter方法&#xff0…...

Buzz音频转录完全指南:3大核心功能+5个实战场景,快速掌握本地语音转文字技术

Buzz音频转录完全指南:3大核心功能5个实战场景,快速掌握本地语音转文字技术 【免费下载链接】buzz Buzz transcribes and translates audio offline on your personal computer. Powered by OpenAIs Whisper. 项目地址: https://gitcode.com/GitHub_Tr…...

DeepSeek RAG系统渗透测试全链路复现(含PoC代码与防御加固清单)

更多请点击: https://kaifayun.com 第一章:DeepSeek RAG系统渗透测试全链路复现概览 DeepSeek RAG系统作为面向企业级知识检索增强生成的典型架构,其安全边界不仅涵盖LLM服务层,更延伸至向量数据库、检索代理、提示工程网关及外部…...

SkillVLA:通过技能复用应对双-臂操纵中的组合多样性

26年3月来自新加坡国立、北京中关村学院、上海创新研究院、上海AI实验室、上海交大和复旦的论文“SkillVLA: Tackling Combinatorial Diversity in Dual-Arm Manipulation via Skill Reuse”。 视觉-语言-动作(VLA)模型近期取得的进展,已充分…...

Windows 10/11系统下,SecureCRT 8.7.2保姆级安装与激活图文指南(含Keygen使用避坑点)

Windows平台SecureCRT 8.7.2全流程部署与安全配置指南在当今远程运维与网络管理的日常工作中,一款可靠的终端仿真工具如同工程师的瑞士军刀。作为行业标杆的SecureCRT,其8.7.2版本在Windows 10/11环境下的部署却常让新手陷入各种技术陷阱——从安装路径选…...

SMUDebugTool终极指南:如何深度掌控AMD Ryzen处理器的隐藏性能

SMUDebugTool终极指南:如何深度掌控AMD Ryzen处理器的隐藏性能 【免费下载链接】SMUDebugTool A dedicated tool to help write/read various parameters of Ryzen-based systems, such as manual overclock, SMU, PCI, CPUID, MSR and Power Table. 项目地址: ht…...

AhMyth位置跟踪:GPS定位与地理围栏技术深度解析

AhMyth位置跟踪:GPS定位与地理围栏技术深度解析 【免费下载链接】AhMyth Cross-Platform Android Remote Administration Tool | The only maintained version of AhMyth on github | A revival of the original repository at https://GitHub.com/AhMyth/AhMyth-An…...

使用libusb-win32驱动复活老旧USB硬件:以Elektor Magic Eye为例

1. 项目概述:让老硬件在新时代焕发新生手头有一台十多年前的《Elektor》杂志上刊登的“Magic Eye EM84”复古VFD显示屏项目,想把它接到Windows 10电脑上当个酷炫的CPU占用率显示器,却发现官方提供的“AVR309”USB驱动在新系统上彻底罢工了。这…...

ESP32搭建TFT_LCD中文字库,附常用字库

(一)简介 在使用ESP32的时候,我们知道OLED屏幕是有中文库的,里面有非常多的常用字,但是LCD屏幕只有取模才能得到中文字体,那我们本期教程就来教大家如何搭建自己的字体库,使用中文字体更加方便快…...