在 Matlab 中查找 pcolor 中的轮廓/边缘

2023-12-11

我正在尝试制作一个遵循“像素”边缘的轮廓pcolor在 Matlab 中绘图。这可能在图片中得到最好的解释。这是我的数据图。黄色数据(data==1)和蓝色数据(data==0)之间有明显的界限:

Pcolor plot

请注意,这是一个pcolor绘图,因此每个“正方形”本质上都是一个像素。我想返回一个轮廓faces黄色数据的pixels, not只是黄色数据的边缘。

i want this output

因此,输出轮廓(绿线)穿过像素的面部(红点)的中点。

请注意,我不希望轮廓遵循数据的中心点(黑点),这会产生类似绿线的效果。这可以很容易地实现contour.

I don't want this outcome

另外,如果有帮助的话,我有一些可能有用的网格。我在像素中间有点(显然,因为这就是我在这里绘制的),在角上也有点,并且在西/东面和北/南面上有点。如果你熟悉荒川网格,这是一个 Arakawa-C 网格,所以我有 rho-、u-、v- 和 psi- 点。

我尝试过插值、交织网格和其他一些方法,但我没有任何运气。任何帮助都会非常感激,并且会阻止我发疯。

干杯,戴夫

EDIT:

Sorry, I simplified the images to make what I was trying to explain more obvious, but here is a larger (zoomed out) image of the region I'm trying to separate: zoomed out image

正如您所看到的,它是一个复杂的轮廓,先向“西南”方向前进,然后环绕并移回“东北”方向。这是我想穿过黑点绘制的红线:

intended output line


您可以通过一些修改来解决这个问题我发布的解决方案 to a 相关问题。我在问题中使用了示例图像蒙版的一部分data。首先,您需要填充面罩上的孔,您可以使用imfill图像处理工具箱:

x = 1:15;  % X coordinates for pixels
y = 1:17;  % Y coordinates for pixels
mask = imfill(data, 'holes');

接下来,应用我的其他答案中的方法来计算一组有序的轮廓坐标(位于像素角上):

% Create raw triangulation data:
[cx, cy] = meshgrid(x, y);
xTri = bsxfun(@plus, [0; 1; 1; 0], cx(mask).');
yTri = bsxfun(@plus, [0; 0; 1; 1], cy(mask).');
V = [xTri(:) yTri(:)];
F = reshape(bsxfun(@plus, [1; 2; 3; 1; 3; 4], 0:4:(4*nnz(mask)-4)), 3, []).';

% Trim triangulation data:
[V, ~, Vindex] = unique(V, 'rows');
V = V-0.5;
F = Vindex(F);

% Create triangulation and find free edge coordinates:
TR = triangulation(F, V);
freeEdges = freeBoundary(TR).';
xOutline = V(freeEdges(1, [1:end 1]), 1);  % Ordered edge x coordinates
yOutline = V(freeEdges(1, [1:end 1]), 2);  % Ordered edge y coordinates

最后,您可以在像素边缘的中心获得所需的坐标,如下所示:

ex = xOutline(1:(end-1))+diff(xOutline)./2;
ey = yOutline(1:(end-1))+diff(yOutline)./2;

这是显示结果的图:

imagesc(x, y, data);
axis equal
set(gca, 'XLim', [0.5 0.5+size(mask, 2)], 'YLim', [0.5 0.5+size(mask, 1)]);
hold on;
plot(ex([1:end 1]), ey([1:end 1]), 'r', 'LineWidth', 2);
plot(ex, ey, 'k.', 'LineWidth', 2);

enter image description here

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

在 Matlab 中查找 pcolor 中的轮廓/边缘 的相关文章

  • 如何使用matlab生成不同频率的正弦波?

    对于我的项目 我需要使用 matlab 生成一个正弦波 它有 100 000 个样本 并且频率在每 10 000 个样本后随机变化 采样率和频率可以根据方便而定 matlab中有没有函数可以生成这个 好的另一个例子 生成 5 个随机频率 r
  • 如何在 Matlab 中使用谷歌翻译?

    我正在编写一个程序 使用 Matlab 列出电影字幕文件中的所有唯一单词 现在我有一个独特的单词列表 我想将其翻译成我的语言并在观看电影之前了解其含义 有谁知道如何在 Matlab 中使用 Google Translate 以便完成我的脚本
  • Python 函数句柄 ala Matlab

    在 MATLAB 中可以创建function handles http www mathworks co uk help techdoc ref function handle html与类似的东西 myfun arglist body 这
  • MATLAB 中的多个捕获组

    我有一个包含数字或字母的字符串a 可能紧随其后的是r or l 在 MATLAB 中 以下正则表达式返回为 gt gt regexp 10r 0 9 a l r match ans 10r 我希望10 and r分开 因为我有两个捕获组 有
  • 在 R 中绘制 3D 数据

    我有一个 3D 数据集 data data frame x rep c 0 1 0 2 0 3 0 4 0 5 each 5 y rep c 1 2 3 4 5 5 data z runif 25 min data x data y 0 1
  • 使用mat2cell将MxN的矩阵划分为1xN大小的M矩阵

    我有一个大小为 MxN 的矩阵 比方说 1867x3 1867 行和 3 列 我想将其分成 1867 个大小为 1x3 的单元格 我使用了mat2cell X 1 1866 这里X是矩阵 1867x3 结果给出了两个单元格 一个单元格的大小
  • 在Python matplotlib中的plot_surface之上绘制单个3D点

    我有一些代码可以使用 matplotlib 在 Python 中绘制 3D 曲面 import math import numpy as np import matplotlib pyplot as plt from pylab impor
  • 使用 MATLAB 进行线路跟踪

    我有一个图像 我想将其转换为逻辑图像 包括线条为黑色 背景为白色 当然 可以使用阈值方法来实现这一点 但我不想使用这种方式来做到这一点 我想通过使用线路跟踪方法或类似的方法来检测它 这是关于视网膜血管检测的 我找到了一个article ht
  • MATLAB 特征函数

    我很好奇哪里可以找到完整的描述FEATURE功能 它接受哪些论点 没有找到文档 我只听说过memstats and getpid 还要别的吗 gt gt which feature built in undocumented 注意 更完整的
  • 拟合泊松直方图

    I am trying to fit a curve over the histogram of a Poisson distribution that looks like this 我修改了拟合函数 使其类似于泊松分布 其中参数 t 作
  • 连接极线ggplot图中的间隙

    当 ggplot 使用极坐标绘制线图时 它会在最高和最低 x 值之间留下间隙 Dec and Jan如下 而不是缠绕成螺旋状 我怎样才能继续这条线并缩小差距 特别是 我想使用月份作为 x 轴 但在一条循环线上绘制多年的数据 Reprex l
  • 在 Matlab 中将 datenum 转换为 datetime 的最快方法

    我在 Matlab 中将 datenum 转换为 datetime 时遇到问题 Given dnum floor now floor now 1 我尝试了以下方法 datenum dnum 但这没有用 我发现有效的方法是 datetime
  • matlab中类库的全局变量

    我有一些matlab声明的类 我如何声明所有类中都可见的常量 例如 这些常量可以是在所有类的方法中使用的物理常量 首先想到的是使用全局变量 还有更好的办法吗 最好在单独的文件中声明这些常量 包含常量的类是执行此操作的一种很好的干净方法 请参
  • 黑白随机着色的六角格子

    我正在尝试绘制一个 10 000 x 10 000 随机半黑半白的六边形格子 我不知道如何将该格子的六边形随机填充为黑色和白色 这是我真正想要从这段代码中得到的示例 但我无法做到 https i stack imgur com RkdCw
  • 在 Matlab 中高效获取像素坐标

    我想在 Matlab 中创建一个函数 给定一个图像 该函数将允许人们通过单击图像中的像素来选择该像素并返回该像素的坐标 理想情况下 人们能够连续单击图像中的多个像素 并且该函数会将所有相应的坐标存储在一个矩阵中 有没有办法在Matlab中做
  • 如何绘制沿染色体图形的位置

    我想生成一个图 描绘我所研究的生物体的 14 条线性染色体 按比例绘制 并在每条染色体的指定位置上用彩色条表示 理想情况下 我想使用 R 因为这是我有经验的唯一编程语言 我探索了多种方法来做到这一点 例如使用 GenomeGraphs 但我
  • matlab中的正则逻辑回归代码

    我正在尝试正则化 LR 在 matlab 中使用以下公式很简单 成本函数 J theta 1 m sum y i log h x i 1 y i log 1 h x i lambda 2 m sum theta j 梯度 J theta t
  • 检测植物图片中的所有分支

    我想知道有什么可以检测下图中的所有绿色树枝 目前我开始应用 Frangi 过滤器 options struct FrangiScaleRange 5 5 FrangiScaleRatio 1 FrangiBetaOne 1 FrangiBe
  • 如何更改Plotyy第二轴的颜色和字体大小?

    我使用 MATLAB 的plotyy 函数绘制了两条曲线 AX H1 H2 plotyy voltage span amplitude voltage span Ca SR The problem is that I cannot chan
  • 访问图像的 Windows“标签”元数据字段

    我正在尝试进行一些图像处理 所以现在我正在尝试读取图像 exif 数据 有 2 个内置函数可用于读取图像的 exif 数据 问题是我想读取图像标签 exifread and imfinfo这两个函数都不显示图像标签 Is there any

随机推荐

  • JSF ViewParam 必需 +AJAX 中断页面

    当我单击下面页面上的命令按钮时 导航失败 单击按钮刷新页面 删除 URL 参数并显示所需的错误消息 而不是导航到索引页面 但是 如果我删除必需的属性或删除 f ajax 标签 导航工作正常 使用 com sun faces JSF 2 1
  • _DebugHeapDelete 终止时访问冲突

    我在主程序末尾遇到了奇怪的访问冲突 我很难找到其原因 关闭我的应用程序时 我遇到以下访问冲突 xdebug TEMPLATE FUNCTION DebugHeapDelete template
  • jquery 工具提示设置超时

    我想显示一个工具提示 该提示将在 3 秒后消失 我应该如何修改我的代码 似乎注释的代码不起作用 http jsfiddle net sMJ2T 1 HTML div title the message div JS function myt
  • 将“安全”标志设置为 JSESSIONid cookie

    我想将 secure 标志设置为 JSESSIONID cookie tomcat 6 中有这样的配置吗 我尝试在 server xml 的 Connector 8080 元素中设置 secure true 但它会产生问题 即 Connec
  • '使用 capifony 执行“'cache:clear --no-warmup'”命令时发生错误

    我正在尝试使用 capifony 进行部署 但是当我运行时 cap deploy 它返回一个错误 gt Updating code base with remote cache strategy Password gt Creating c
  • 如何打印Linux上进程的所有线程的线程ID

    我知道如何在线程上下文中执行时打印线程 ID 但我想打印进程生成的所有线程 ID 我需要将其与 strace 输出关联起来以进行调试 如何获取当前线程id pid t x 系统调用 NR gettid From https unix sta
  • 无法从 Android 授权 LinkedIn 应用程序

    我正在尝试授权 LinkedIn 应用程序将状态从我的 Android 应用程序发布到 linkedin 但是当我点击授权时 我的网络视图中没有出现任何内容 这是我的 OwnAuthLinkPage java public class Ow
  • 使用 C/Pthreads:共享变量是否需要是易失性的?

    在C编程语言和Pthreads作为线程库中 线程之间共享的变量 结构是否需要声明为易失性 假设它们可能受到锁的保护 也许没有障碍 pthread POSIX 标准对此有什么说法吗 这是否依赖于编译器 或者两者都不依赖 编辑添加 感谢您的精彩
  • JApplet 和 KeyListener

    我正在开发一个应用程序我的计算机科学课 任务是编写一个计算器 但不使用JTextFields or JTextAreas 我想出了一个实施的想法KeyListener which 在 appletviewer 和JFrame但在 Googl
  • Vista 中的 Eclipse/adb 错误消息“无法解析 adb 版本的输出”

    我想学习Android开发 所以我下载了Eclipse Galileo和Android SDK 但是 每当我启动 Eclipse 时 都会收到错误消息 无法解析 adb 版本的输出 在控制台 DDMS 窗格中 调试输出显示 2010 06
  • iPhone Objective-C:键盘有时不会通过 resignFirstResponder 隐藏

    我有一个 UITextView 当按下返回键时 我将其称为 resignFirstResponder 文本视图does辞职第一响应者 文本框中闪烁的光标消失 但键盘有时不会消失 什么可能导致这个问题 谢谢你 声明UITextViewDele
  • 双向链表上的快速排序

    我想在同步双向链表上实现快速排序算法 我给函数 分区 左右边界 然后它开始在左侧搜索较低的值 并将较大的值放在右侧 这是有效的 因为我的枢轴元素始终是最右边的元素 并且在这一步之后它位于中间 我总是陷入无限循环 我不知道为什么 也许中止条件
  • 使 QTableView 的行随着编辑器高度的增加而扩展

    这直接来自这个问题 这是一个 MRE class MainWindow QtWidgets QMainWindow def init self super init self setWindowTitle Get a grip of tab
  • Python 中“可哈希”是什么意思?

    Python 代码中的对象到底是什么意思hashable 来自Python术语表 如果一个对象有一个在其生命周期内永不改变的哈希值 它需要一个 hash 方法 并且可以与其他对象进行比较 它需要一个 eq or cmp 方法 比较相等的可哈
  • 在 React 中更新 forEach 循环中的状态无法正常工作

    我想在每次收到承诺时循环更新一个状态 但我的状态只展现了最后的承诺 我猜这是因为 由于设置状态是异步的 它使用先前状态更新之前可用的映射 在不使用 Promise all 的情况下如何实现这一目标 const dataList setDat
  • CouchDB 和 PouchDB 之间的过滤同步

    我目前正在考虑在我想编写的下一个应用程序中使用 CouchDB 2 和 PouchDB 7 基本上 我将在中央存储中拥有一个 CouchDB Web 客户端和移动应用程序将启动一个能够思考的 PouchDB 基本上这就像一个魅力 但是 如果
  • 为什么 python 像这样排序我的字典? [复制]

    这个问题在这里已经有答案了 这是我有的字典 propertyList id int name char 40 team int realOwner int x int y int description char 255 port bool
  • 浮点数的正则表达式?

    我正在尝试编写一个正则表达式来验证浮点数 这是我迄今为止所做的 1 9 d 0 2 d 1 1 如果满足以下条件 则该号码有效 要么是正的 要么是负的 最多 2 位数字 十位或百位 百位数字不能为0 只能是1 9 比例最大为 1 小数值可以
  • StackOverflowException 未处理

    我的代码中出现此错误 MedCareProviderLibrary dll 中发生 System StackOverflowException 类型的未处理异常 这是我的代码片段以及错误的来源 它在有错误的部分上显示一个黄色箭头 显示错误的
  • 在 Matlab 中查找 pcolor 中的轮廓/边缘

    我正在尝试制作一个遵循 像素 边缘的轮廓pcolor在 Matlab 中绘图 这可能在图片中得到最好的解释 这是我的数据图 黄色数据 data 1 和蓝色数据 data 0 之间有明显的界限 请注意 这是一个pcolor绘图 因此每个 正方