代码不适用于 matlab 中的图像处理

2024-03-11

我想在matlab中计算这个公式

[m,n,d]=size(img1);
matrix1=sum(abs(img1-img2));
a= matrix1/ m*n ;
b=a*100;

其中img1,img2是尺寸为512*512*3的两张图像

目标是获得单个数值,但我得到一个矩阵。对于具有 i 行和 j 列的矩阵 A,B,实际公式为= (summation [abs(A(i,j)- B(i,j))] / m*n ) * 100获得百分位数 我知道它很简单,但我想我错过了一些东西!


您的图像矩阵是 3D 的事实表明它们是真彩色 RGB 图像 http://www.mathworks.com/help/techdoc/creating_plots/f2-10709.html#f2-12468。对于矩阵M,第一个颜色平面M(:,:,1)是红色分量,第二个颜色平面M(:,:,2)是绿色分量,第三个颜色平面M(:,:,3)是蓝色分量。由于您只讨论公式中前两个维度的求和,因此您必须弄清楚如何处理第三个维度。这里有几个选项:

  • 将您的公式应用于每个颜色平面: 你可以通过调用函数来做到这一点SUM http://www.mathworks.com/help/techdoc/ref/sum.html两次,一次对列求和,然后再次对行求和。结果matrix1将是一个 1×1×3 矩阵,可以使用该函数将其重塑为 3 元素列向量SQUEEZE http://www.mathworks.com/help/techdoc/ref/squeeze.html。向量中的每个元素将是每个颜色平面的总和:

    matrix1 = squeeze(sum(sum(abs(img1-img2),1),2));
    

    现在您可以使用逐元素乘法和除法运算符 http://www.mathworks.com/help/techdoc/ref/arithmeticoperators.html .* and ./计算最终结果:

    a = matrix1./(m*n);
    b = a.*100;
    
  • 将图像转换为灰度:如果您只关心颜色强度,可以将真彩色 RGB 图像转换为 2-D灰度强度图像 http://www.mathworks.com/help/techdoc/creating_plots/f2-10709.html#f2-175使用该功能RGB2GRAY http://www.mathworks.com/help/toolbox/images/ref/rgb2gray.html来自图像处理工具箱 http://www.mathworks.com/help/toolbox/images/:

    img1 = rgb2gray(img1);
    img2 = rgb2gray(img2);
    

    然后你可以打电话SUM http://www.mathworks.com/help/techdoc/ref/sum.html两次对行和列求和,或者使用单冒号索引 http://www.mathworks.com/help/techdoc/math/f1-85462.html#bq7egbu-1将每个图像重塑为列向量并调用SUM http://www.mathworks.com/help/techdoc/ref/sum.html once:

    matrix1 = sum(sum(abs(img1-img2)));
    %# OR...
    matrix1 = sum(abs(img1(:)-img2(:)));
    

附加说明...

如果您的图像数据存储为整数类型 http://www.mathworks.com/help/techdoc/ref/uint8.html,您可能希望将图像数据转换为双精度浮点数 http://www.mathworks.com/help/techdoc/ref/double.html首先执行以下操作:

img1 = double(img1);
img2 = double(img2);

这将确保求和步骤的结果不会在整数类型可以容纳的最大值处饱和。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

代码不适用于 matlab 中的图像处理 的相关文章

  • 将 3d 矩阵重塑为 2d 矩阵

    我有一个 3d 矩阵 n by m by t 在 MATLAB 中表示n by m一段时间内网格中的测量值 我想要一个二维矩阵 其中空间信息消失了 只有n m随着时间的推移测量t剩下 即 n m by t 我怎样才能做到这一点 你需要命令r
  • Matlab 编辑器不使用 emacs 快捷方式

    Is there some way I can make the matlab integrated editor not use emacs shortcut but use more normal shortcuts such that
  • opencv中矩阵的超快中值(与matlab一样快)

    我正在 openCV 中编写一些代码 想要找到一个非常大的矩阵数组 单通道灰度 浮点数 的中值 我尝试了几种方法 例如对数组进行排序 使用 std sort 和选择中间条目 但与 matlab 中的中值函数相比 它非常慢 准确地说 在 ma
  • 在 RGB 图像上绘制多类语义分割透明叠加

    我有语义分割掩码的结果 值在 0 1 之间 需要大津阈值来确定什么是积极的 我想直接在 RGB 图像上绘制 在 RGB 图像上每个预测类具有不同的随机颜色 我使用以下内容绘制了具有单一颜色的单个蒙版 是否有一个包或简单的策略可以为多类别做到
  • ImageMagick 更改图像宽度和高度

    我正在使用 ImageMagick 通过使用下面的命令行选项来调整图像分辨率 convert abc png set units PixelsPerInch density 75 abc a png 我需要这个 如果任何图像的宽度超过 30
  • 图像上的 JQuery 加载事件

    我想在加载图像时将图像父级的大小调整为与图像相同的大小 此时我正在使用这段代码 window load function image principale each function this parent css height this
  • 如何在 Node.js 中将 HTML 转换为图像

    我需要在 Node 服务器上将 HTML 模板转换为图像 服务器将以字符串形式接收 HTML 我尝试过 PhantomJS 使用一个名为 Webshot 的库 但它不能很好地与 Flex 框和现代 CSS 配合使用 我尝试使用 Chrome
  • CSS - 将文本保留在图像下方

    我正在尝试创建一个简单的图片库 有人告诉我使用 float left 但是当我这样做时 页脚中的所有文本都会射到第一张图像 我已经搜索了大约一个小时试图找到解决方案 但我找不到任何东西 我尝试过使用边距 边框 不同的对齐方式和各种不同的小东
  • Nodejs Base64 中的读取文件

    我正在尝试从客户端读取以 base64 编码的图像 如何使用nodejs进行阅读 My code add to buffer base64 image var encondedImage new Buffer image name base
  • 使用 StretchDIBits 使用 Delphi 6 处理条形码图像 - 输出中缺少条形线

    我的应用程序是在 Delphi 6 中开发的 由于后台处理和大量数据 它消耗大约 60MB 120MB 物理内存 这是一个资源密集型应用程序 该应用程序的功能之一是在进行某些处理后创建条形码图像 如果用户继续生成条形码 那么至少十分之一的条
  • Phonegap 图像未显示

    我无法让图像在我的phonegap 版本中正常工作 我读过绝对路径可能不起作用 所以我尝试了绝对路径和相对路径 但仍然没有运气 我包括这样的图像
  • 调整回形针大小以适合矩形框

    我有一个矩形图像 例如 30x800 像素 如何用回形针缩放它以保留 100x100 像素图像的纵横比 并用边框填充空白区域 一个例子 http www imagemagick org Usage thumbnails pad extent
  • 将 UIImage 放入 UIButton 的简单方法

    我的 iPhone 应用程序中有一个 UIButton 我将其大小设置为 100x100 我有一个 400x200 的图像 我希望在按钮中显示它 按钮仍然需要保持在 100x100 并且我希望图像缩小以适应 但是 保持正确的纵横比 我想这就
  • Tesseract 是否会忽略扫描文档中的任何非文本区域?

    我正在使用 Tesseract 但我不知道它是否忽略任何非文本区域并仅针对文本 我是否必须删除任何非文本区域作为预处理步骤以获得更好的输出 Tesseract 有一个非常好的算法来检测文本 但它最终会给出误报匹配 理想情况下 您应该在将图像
  • 如何修复此 YCrCb -> RBG 转换公式?

    我使用的公式来自这个问题 https stackoverflow com questions 8838481 kcvpixelformattype 420ypcbcr8biplanarfullrange frame to uiimage c
  • Matlab Solve():未给出所有解决方案

    我试图找到两条曲线的交点 syms x y g x 20 exp x 30 3 5 1 sol x sol y solve x 22 3097 2 y 16 2497 2 25 y g x x y Real true 它只提供一种解决方案
  • OpenCV 仅围绕大轮廓绘制矩形?

    第一次发帖 希望我以正确的方式放置代码 我正在尝试检测和计算视频中的车辆 因此 如果您查看下面的代码 我会在阈值处理和膨胀后找到图像的轮廓 然后我使用 drawContours 和矩形在检测到的轮廓周围绘制一个框 我试图在 drawCont
  • 单元格的 Fieldnames 函数的等效项

    正如标题所说 只是想知道是否有一个函数可以用作字段名 http www mathworks co uk help matlab ref fieldnames html 但适用于单元格 所以如果我有类似的东西 a imread redsqua
  • 图片加载性能

    我已经尝试了几个小时从文件加载图像的各种方法 请看一下这两种方法 public Image SlowLoad string path return Image FromFile path public Image FastLoad stri
  • 为什么 MATLAB 本机函数 cov(协方差矩阵计算)使用与我预期不同的除数?

    给定一个 M 维和 N 个样本的数据矩阵数据 例如 data randn N M 我可以计算协方差矩阵 data mu data ones N 1 mean data cov matrix data mu data mu N 如果我使用原生

随机推荐

  • 为什么 IE10 不显示嵌套的 CSS3 3D 转换元素?

    我在这里有点迷失 我目前正在测试 Windows 8 Release Preview 附带的 IE10 10 0 9200 16384 我遇到了非常困难的时间 困扰我的事情之一是 IE 似乎无法正确处理嵌套 3D 变换 请看这个小提琴 ht
  • Sitecore 插入规则以确保最多 (1) 个特定类型的子级

    sitecore 中有没有办法确保某种类型的项目只能有某种类型项目的 1 个子项 我正在阅读规则引擎食谱 但我没有得到太多细节 我工作过的一个网站要求特定项目类型下不能存在超过 6 个子项目 我们考虑过使用插入选项规则 但决定放弃这个想法
  • Spring可以在抽象类中自动装配吗?

    Spring 无法自动装配我的对象 是否可以在抽象类中自动装配对象 假设所有模式都在 application context xml 中提供 问题 基类和扩展类 如果有 Service Component 上应该使用什么注释 Example
  • Azure 存储 403 禁止异常是 32 位问题吗?

    我们花了相当多的时间来定位出现以下异常的原因 The remote server returned an error 403 Forbidden 堆栈跟踪 at Microsoft WindowsAzure Storage Core Exe
  • PC 客户端上的 C# Crystal Report 总是要求登录提示 SQL Server

    创建setup我的程序 程序运行良好 可以增删改查数据库 当我打开报告时 总是出现登录提示的问题 但在数据库字段中为空禁用 在服务器计算机上 报告没有问题 在我建立连接的代码中 像这样 cnn ServerName 179 15 30 74
  • map() get() 混淆

    我刚刚浏览了 jQuery API 我有点困惑map get 方法 我知道我错了但是map 方法看起来很像 each 陈述 除了文档说它返回一个新的 jQuery 对象 我一直在 jsfiddle 上玩这个 试图弄清楚它 但我还不太明白 h
  • 日志文件监视器

    是否可以在另一个应用程序更新文件时打开文本文件并读取内容 这样就不会导致锁定冲突 我需要监视一个应用程序的日志文件 每次发生事件时该日志文件都会由另一个应用程序更新 在尝试读取文件之前 我会检查该文件是否正在使用 但这似乎并不在所有情况下都
  • 在 Qt Creator 中使用 Qt 标准图标

    我想使用 Qt Standard 图标 as here http standards freedesktop org icon naming spec icon naming spec latest html 我发现了很多例子如何以编程方式
  • Thymeleaf 不解释 sec 标签

    我遇到了一个问题 thymleaf 无法识别我的 Spring Boot 项目中的 sec 标签 例如下面的 sec authentication 未被解释 并按浏览器中的 html 中的形式显示 div Roles span span d
  • 从 Elasticsearch 文档中删除字段

    我需要删除索引到 Elasticsearch 的所有文档中的一个字段 我该怎么做 backtrack 所说的是 true 但是在 Elasticsearch 中有一种非常方便的方法可以做到这一点 Elasticsearch 会抽象出删除的内
  • SQLite .NET,ExecuteScalarAsync,如何知道何时没有结果?

    SQL 语句正在检索行的 ID 但可能不存在这样的行 当我在 GUI 工具中执行特定 SQL 语句时 它返回 0 行在 0 毫秒内返回 但是 当我执行相同的 SQL 语句时ExecuteScalarAsync
  • Spark Scala UDP 在侦听端口上接收

    中提到的例子http spark apache org docs latest streaming programming guide html http spark apache org docs latest streaming pro
  • curl 重新使用 https 连接会话

    我已经使用 openssl 构建了curl 并且能够执行https 连接 现在 每次当curl建立TLS连接时 它都会再次握手 我需要利用客户端与服务器的先前连接会话ID 并在下一个请求中使用它 我已经尝试过以下选项 但每次尝试仍然会进行新
  • 当您有列名的字符向量时,如何不使用 select() dplyr 选择列?

    我正在尝试使用 dplyr 取消选择数据集中的列 但自昨晚以来我无法实现这一目标 我很清楚解决方法 但我正在严格尝试通过 dplyr 找到答案 library dplyr df lt tibble x c 1 2 3 4 y c a b c
  • Angular 2 HTTP 响应拦截器

    在 Angular 1 中 全局处理 HTTP 响应状态是通过 httpProvider angular module app service httpResponseInterceptor q function q this respon
  • Node.js 开发人员的高级文档 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 最近我们的团队正在使用 Node js 开发一个新项目 开始使用 Node js 并不难 但现在我们才
  • 检查范围内唯一单元格的数量

    我有一张 Excel 表格 在 E 列下 我有 425 个包含数据的单元格 我想检查相同的数据 即单元格内的文本 是否在 E 列下剩余 424 个单元格中的任何其他位置重复 我该如何执行此操作 例如 在 E54 中我有 Hello Jack
  • UITextField 文本上的阴影

    是否可以在文本中添加阴影UITextField 从 3 2 开始 您可以使用 CALayer 阴影属性 textField layer shadowOpacity 1 0 textField layer shadowRadius 0 0 t
  • 错误:错误 1005:无法创建表“cat10e.recording”(错误号:150)[重复]

    这个问题在这里已经有答案了 我正在尝试对我的数据库进行正向工程 该数据库有 7 个表 但其中一个向我发送了错误 我真的不知道从这里做什么 因为它的设置就像我的其他表一样 所以我不确定是什么导致了错误 谷歌返回了许多不同的答案 专辑SQL p
  • 代码不适用于 matlab 中的图像处理

    我想在matlab中计算这个公式 m n d size img1 matrix1 sum abs img1 img2 a matrix1 m n b a 100 其中img1 img2是尺寸为512 512 3的两张图像 目标是获得单个数值