小编Sam*_*Sam的帖子

在MATLAB中调整3D矩阵(图像)的大小

我有一个3D矩阵(MxNxK),并希望将其调整为(M'xN'xK')(就像在matlab中的imresize).我使用图像金字塔,但其结果不是很准确,需要更好的.有解决方案吗

matlab signal-processing image-processing multidimensional-array 3d-modelling

16
推荐指数
3
解决办法
2万
查看次数

从一个点的矩阵上的螺旋环

我有一个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)螺旋地填充整个矩阵.

谢谢!

arrays matlab loops matrix

6
推荐指数
2
解决办法
1894
查看次数

图像中的邻域半径

我有一个图像(200x200),并希望找到具有预定义半径的特定点的邻域位置.例如,半径为5时,我在一个点周围有25个点.MATLAB可以做到吗?问题是关于图像的边缘,它并不总是25点,程序应该只找到该半径范围内的点.这些点可以从1(角落)到25(图像中心)变化

matlab image-processing

3
推荐指数
1
解决办法
2718
查看次数

在matlab中对象的距离图像

我有一个包含一些点(或对象)的图像.我想在此图像上创建另一个图像,显示与这些对象的距离.例如,此新图像应在对象位置具有最大值.在matlab中有什么解决方案吗?

在此输入图像描述

matlab image image-processing object

3
推荐指数
1
解决办法
1873
查看次数

临时删除matlab中的所有添加路径

我已经为matlab添加了很多路径,现在我想分享我的代码,但我不确切地知道应该添加到共享代码中的哪个函数(在哪个路径中).每次我需要添加一个缺少的功能,这对我和使用该代码的用户来说真的很烦.

所以,我想将matlab路径恢复到原来的情况.有没有办法在matlab中做到这一点?我还想在.m文件中保留当前添加的路径的备份,并在以后完成时使用它.

matlab

3
推荐指数
1
解决办法
6728
查看次数

在列中查找具有特定值的行

可能重复:
在矩阵中查找条目匹配某些约束的行?

在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)

statistics matlab matrix

2
推荐指数
1
解决办法
2万
查看次数

打破嵌套循环

我在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

2
推荐指数
1
解决办法
1万
查看次数

在matlab中调整图像大小而不引入插值

我有一个明确的图像,我需要让它变小.但是,默认情况下,当我在matlab中使用imresize时,输出也不是分类的(它将是连续的).但是,有一些方法,如Otsu将其转换为分类图像,但我不想使用这些方法.

在matlab中是否有任何方法可以将分类图像调整为另一个分类图像,而无需在调整大小的图像上使用任何其他操作?

matlab image image-processing computer-vision

2
推荐指数
1
解决办法
1723
查看次数

在特定位置寻找邻居

我有一个2D矩阵,我想在这个矩阵中找到(i,j)的邻域,分别在x和y方向上有M和N个大小.我知道这很容易,但我的问题是,当(i,j)接近角落时,M和N很大!在这种情况下,我不想超过矩阵.在MATLAB中是否存在针对此问题的任何函数或简单解决方案?

matlab signal-processing image-processing

1
推荐指数
1
解决办法
1227
查看次数

二进制或连续图像?

我有一个图像,我想在MATLAB中使用它.但是,我正在寻找一种方法,通过该方法我能够自动发现我的图像是二进制(0和1)或连续的.有一段代码的解决方案吗?

matlab image image-processing

0
推荐指数
1
解决办法
226
查看次数

在C++中调用指针函数

我用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)

c++ pointers multidimensional-array

-7
推荐指数
1
解决办法
627
查看次数