我有一个3D矩阵(MxNxK),并希望将其调整为(M'xN'xK')(就像在matlab中的imresize).我使用图像金字塔,但其结果不是很准确,需要更好的.有解决方案吗
matlab signal-processing image-processing multidimensional-array 3d-modelling
我有一个2D网格,并希望从X,Y开始,并保存窗口的角(W)和(OP)的重叠.我已经尝试过这些代码,但不适用于我的目的.
如图所示,我想从一个随机点(黑色单元格)开始,并在螺旋循环中保存每个新窗口的角落位置(由黑色圆圈表示).该算法应该用于任何网格尺寸(不一定是方形)和任何起点位置.
Matlab也有一个类似于我想要的功能(螺旋),但它不需要网格,窗口大小和重叠(OP).
我希望这个数字有以下输出:(8,12)(11,12)(11,9)(8,9)(4,9)(4,12)(4,15)......
我使用以下代码从角落开始并使用定义的W,OP和Matrix大小逐步填充矩阵:
W = [10 12];
OP = [4 3];
M = zeros(100,110);
for i=[1:W(1)-OP(1):size(M,1)-W(1), size(M,1)-W(1)+1]
for j=[1:W(2)-OP(2):size(M,2)-W(2), size(M,2)-W(2)+1]
block = rand(W(1),W(2));
M(i:i+W(1)-1, j:j+W(2)-1) = block;
imagesc(M); axis equal tight xy
pause(.1)
end;
end;
Run Code Online (Sandbox Code Playgroud)
因此,以更清晰的方式,我应该如何更改"上方"代码以便从位置(x,y)开始并根据W,OP和大小(M)螺旋地填充整个矩阵.
谢谢!
我有一个图像(200x200),并希望找到具有预定义半径的特定点的邻域位置.例如,半径为5时,我在一个点周围有25个点.MATLAB可以做到吗?问题是关于图像的边缘,它并不总是25点,程序应该只找到该半径范围内的点.这些点可以从1(角落)到25(图像中心)变化
我有一个包含一些点(或对象)的图像.我想在此图像上创建另一个图像,显示与这些对象的距离.例如,此新图像应在对象位置具有最大值.在matlab中有什么解决方案吗?

我已经为matlab添加了很多路径,现在我想分享我的代码,但我不确切地知道应该添加到共享代码中的哪个函数(在哪个路径中).每次我需要添加一个缺少的功能,这对我和使用该代码的用户来说真的很烦.
所以,我想将matlab路径恢复到原来的情况.有没有办法在matlab中做到这一点?我还想在.m文件中保留当前添加的路径的备份,并在以后完成时使用它.
可能重复:
在矩阵中查找条目匹配某些约束的行?
在Matlab中,我有一个矩阵(MxN),我想找到特定列中的条目等于指定值的行.例如,我有一个矩阵如下:
0 0 0 0 0 0 0 0 1 0
1 0 0 0 0 0 1 0 0 1
0 0 1 0 0 0 0 0 0 0
0 0 0 1 0 0 0 0 1 0
0 0 0 0 1 0 0 0 0 1
0 0 0 0 0 0 0 0 0 0
0 1 1 0 0 0 1 0 1 0
0 0 0 0 0 0 0 …Run Code Online (Sandbox Code Playgroud) 我在Matlab中有三个嵌套循环,在每个循环中,我有一个检查标志的"if".如果没有问题,则算法继续进行,否则,我希望程序终止.这是我的代码,我觉得有些不对劲!
[A] = finction (...,...,...)
for i = 1:100
for j = 1:100
for k = 1:30
some operation which its results is a flag
if flag==1 % its initial value is 0
break
end;
end;
end;
end;
Run Code Online (Sandbox Code Playgroud)
应该把那个中断放在哪里以便我打破其余的计算?
我有一个明确的图像,我需要让它变小.但是,默认情况下,当我在matlab中使用imresize时,输出也不是分类的(它将是连续的).但是,有一些方法,如Otsu将其转换为分类图像,但我不想使用这些方法.
在matlab中是否有任何方法可以将分类图像调整为另一个分类图像,而无需在调整大小的图像上使用任何其他操作?
我有一个2D矩阵,我想在这个矩阵中找到(i,j)的邻域,分别在x和y方向上有M和N个大小.我知道这很容易,但我的问题是,当(i,j)接近角落时,M和N很大!在这种情况下,我不想超过矩阵.在MATLAB中是否存在针对此问题的任何函数或简单解决方案?
我有一个图像,我想在MATLAB中使用它.但是,我正在寻找一种方法,通过该方法我能够自动发现我的图像是二进制(0和1)或连续的.有一段代码的解决方案吗?
我用C++编写了一段代码.我从搜索引擎结果中获取了第一部分.
1)使用函数定义函数的含义是什么double **filter_2d?我们可以使用指针定义函数吗?
2)我对以下行感到困惑:
double **filt_out = filter_2d(A, 3, 3, B, 2, 1);
Run Code Online (Sandbox Code Playgroud)
它工作不正常,我不明白为什么.
#include <iostream>
#include <stddef.h>
#include <cmath>
#include <fftw3.h>
using namespace std;
void filter_2d(double** image, int width_image, int height_image, double** kernel, int width_kernel, int height_kernel, double *** OutImg)
{
double **output = *OutImg;
int i, j, p, q;
//this is the case of 'full' option selected in matlab
//double **output = (double **)malloc(sizeof(double *)*(width_image + width_kernel - 1));
for (i = 0; i<width_image + width_kernel …Run Code Online (Sandbox Code Playgroud) matlab ×10
image ×3
matrix ×2
3d-modelling ×1
arrays ×1
c++ ×1
loops ×1
object ×1
pointers ×1
statistics ×1