我在MATLAB中有一个图像:
im = rgb2gray(imread('some_image.jpg');
% normalize the image to be between 0 and 1
im = im/max(max(im));
Run Code Online (Sandbox Code Playgroud)
我做了一些处理,产生了一些我想强调的要点:
points = some_processing(im);
Run Code Online (Sandbox Code Playgroud)
哪里points是一个矩阵大小相同im与那些在兴趣点.
现在我想在图像中绘制一个圆圈,其中所有的位置points都是1.
MATLAB中有没有这样做的功能?我能想到的最好的是:
[x_p, y_p] = find (points);
[x, y] = meshgrid(1:size(im,1), 1:size(im,2))
r = 5;
circles = zeros(size(im));
for k = 1:length(x_p)
circles = circles + (floor((x - x_p(k)).^2 + (y - y_p(k)).^2) == r);
end
% normalize circles
circles = circles/max(max(circles));
output = im + circles;
imshow(output)
Run Code Online (Sandbox Code Playgroud)
这似乎有点不优雅.有没有办法画出类似于line函数的圆圈?
put函数工作正常,但get函数没有.显然我不知道诀窍.
>> X = [ 1, 2, 3];
>> M = java.util.HashMap;
>> M.put(X,1);
>> M.get([1,2,3])
ans = []
Run Code Online (Sandbox Code Playgroud)
我搜索并阅读了很多帖子,但找不到解决这个问题的方法.如果有人能让我知道这个伎俩会很棒.
我有一个BE项目,其代码在MATLAB中,但我需要在网页上显示结果.我想知道我是否可以直接在网站上运行我的代码?如果没有,你能告诉我哪种语言会更好吗?我想的可能是ASP,HTML和PHP.
通常在MATLAB中打印字符串时:
disp('this will print black letters')
Run Code Online (Sandbox Code Playgroud)
它可以用彩色印刷吗?
我正在使用MATLAB中使用颜色直方图交集的图像检索系统.此方法为我提供以下数据:表示直方图交叉距离的实数和图像文件名.因为它们是不同的数据类型,我将它们存储在具有两个字段的结构数组中,然后我将此结构保存在.mat文件中.现在我需要根据直方图交叉距离按降序对此结构进行排序,以便检索具有最高直方图交叉距离的图像.我已经尝试了很多方法来对这些数据进行排序但没有结果.请问你能帮我解决这个问题吗?
我试图在计算机视觉中实现一个算法,我想在一组图片上尝试它.图片都是彩色的,但我不想处理.我想将它们转换为灰度,这足以测试算法.
如何将彩色图像转换为灰度?
我正在读它:
x = imread('bla.jpg');
Run Code Online (Sandbox Code Playgroud)
我可以添加任何参数来将imread其作为灰度读取吗?有没有办法在阅读后x改为灰度?
我在MATLAB中有一个矩阵,我需要为每列找到99%的值.换句话说,这个价值使99%的人口拥有比它更大的价值.MATLAB中有这个功能吗?
我在3D空间中有点和它们相应的2D图像点.如何从3D点中制作网格,然后纹理网格形成的三角形面?
所以,我有一个不同长度的1xN向量的单元阵列.我想将它们附加到矩阵中,以便我可以显示它们imagesc.显然,矩阵必须是最大向量的宽度.我目前的代码如下:
tcell = {[1,2,3], [1,2,3,4,5], [1,2,3,4,5,6], [1], []};
lens = cellfun('length', tcell);
rmat = NaN(length(tcell), max(lens));
for i = 1:length(tcell)
rmat(i, 1:lens(i)) = tcell{i};
end
Run Code Online (Sandbox Code Playgroud)
有谁知道这种问题的矢量化解决方案?由于MATLAB的JIT,我并不是真的担心这个循环的速度.我只是想扩展我的知识,这是我在编程中经常遇到的一个案例.
这让我感到困扰:
假设你有一个有三层的矩阵.
是否有一种简单的方法将此矩阵与三个元素的向量相乘,以便第一层(所有元素)与向量的第一个元素相乘,依此类推......
现在我必须使用一个函数来这样做:
function out=fun(matrix,vector)
out=matrix;
for k=1:3
out(:,:,k)=out(:,:,k)*vector(k);
end
Run Code Online (Sandbox Code Playgroud)
是否有一种有效的方法可以在一行中完成此操作而无需功能?