Matlab reshape 按列扫描、按列填充——容易踩坑

Matlab 的 reshape 会先将输入数据按列扫描变为一维列向量,输出数据则是根据列向量逐列填充。在转换数据时如果不注意这一点很容易踩坑!

其他笔记
#Matlab

Matlab 如何将图形转化为轮廓

Matlab 自带 bwboundaries 函数,能够解析图形,返回图片上所有图形的轮廓

其他笔记
#Matlab

Python 使用 np.vectorize 向量化函数,进行批量处理

通常情况下,NumPy 能够直接对数组执行元素级操作,这就是所谓的"向量化"操作。但有时候,如果你有一个在标量上定义的函数,你可能想要将其应用到整个数组上,而不是对数组中的每个元素进行循环操作。`np.vectorize` 函数允许你在 NumPy 数组上以向量化的方式应用一个普通的 Python 函数。这使得你可以用一种更简洁和有效的方式处理整个数组,而不需要显式地编写循环。

其他笔记
#Matlab

Matlab 自定义代码支持滚轮放大和拖动图片

Matlab 虽然自带的imshow也支持鼠标滚轮放大缩小,鼠标左键拖动放大的图片调整视野,但是一旦把menubar给关了,就丢失了zoom和pan的功能,最离谱的是——zoom和pan还只能开一个,开了zoom就不能开pan。所以打算自己撸一个同时支持鼠标滚轮放大图片和左键拖动图片的功能。

其他笔记
#Matlab

Matlab 把 ROI mask 以一定透明度叠加到黑白图像上

本文主要介绍了两种将遮罩图像叠加在原始图像上的方法。第一种方法是将遮罩信息直接写入原始图像的HSV通道中,通过调整饱和度来控制透明度。第二种方法是使用imshow函数在图像上显示遮罩区域,并设置透明度。这些方法可以有效实现图像叠加效果。

其他笔记
#Matlab

Matlab arguments 让函数回归函数

Matlab arguments 是Matlab 2019才有的语法,它让Matlab 编写函数能以更简单的设置函数默认参数、支持键值对传参、支持参数验证以及自动参数类型转化等功能。习惯Python简单粗暴的编写函数的我,总算因为arguments这个语法,对Matlab的函数编写少了一丝敌意。目前class也是能用arguments语法对类属性进行设置。

其他笔记
#Matlab

Matlab 如何正确把图像转为uint8

虽然官方函数有 `im2uint8`,然而这个函数只适用于 double 类型范围在 0~1 的数组。需要先把数据归一化到 0~1,再用 im2uint8,才能把原图的灰度值从 [0,1] 映射到 [0,255]

其他笔记
#Matlab

Matlab 有没有像 np.clip 一样的函数,限制数组的最大值和最小值

其实用max和min叠加就可以实现,限制数组的最大值和最小值

其他笔记
#Matlab

Matlab 如何用二维mask给三维矩阵批量赋值

这篇博客介绍了如何将二维的ROI mask转化为有颜色的ROI mask。提供了两种解决方案。第一种是已知ROI的整体位置信息,可以直接利用逻辑矩阵的位置信息给三维矩阵赋值,实现批量填充颜色。第二种是只知道每个点的坐标位置,可以通过循环或者sub2ind函数将坐标转化为线性索引,然后进行批量赋值。此外,如果希望填充整个ROI区域而不是轮廓,可以使用poly2mask函数将ROI轮廓转化为ROI mask。

其他笔记
#Matlab

Matlab 直接用 if 判断矩阵的返回值

在Matlab中,我们可以使用if语句来判断一个矩阵中的元素是否全为1。如果矩阵中的所有元素都是1,那么条件为真,返回true;如果存在至少一个不为1的元素,那么条件为假,返回false。另外,如果我们只是想判断矩阵中是否存在大于1的数,可以使用any函数。当矩阵中存在大于1的数时,条件为真,返回true;否则,条件为假,返回false。通过这样的判断,我们可以根据需要编写相应的代码逻辑。

其他笔记
#Matlab
123457