处理图像处理的MATLAB编程问题

时间:2011-05-30 22:04:58

标签: matlab image-processing

问题:请求边缘被裁剪(1.顶部,2。左边,3。右边,4。底部),以及要移除的像素数量。 实现为函数:pic_new = crop_image(pic,direction,pixels);

如何使用指示的输入进行功能?我知道有一个名为imcrop()的函数,但我似乎无法让它工作。请帮忙。谢谢你的时间。

2 个答案:

答案 0 :(得分:0)

imcrop是您需要使用的确切功能。在你的情况下,它应该是这样的:

首先,按坐标构建一个矩形,它的高度和宽度为:

x = 50 
y = 50
height = 20
width = 20 

然后,加载并裁剪图像:

I = imread('image.png');
I2 = imcrop(I, [x, y, height, width]);
imshow(I), figure, imshow(I2)

答案 1 :(得分:0)

你开始这样的函数定义:

function [out1, out2] = my_func(in1, in2, in3)

您可以根据变量值处理一系列行为,如下所示:

switch (x)
    case 1
        % Stuff for x==1
    case 2
        % Stuff for x==2
    case 3
        % Stuff for x==3
    otherwise
        % Stuff for all other values of x
end

您可以从数组中删除元素,如下所示:

matrix_out = matrix_in(x1:x2, y1:y2, :);

(请记住,图像通常表示为2D阵列(如果是RGB,则表示3D)。

这应该足以回答你的问题了。如果不是,你需要更清楚你想做什么。