Julia-Lang:使用固定的背景颜色对图像进行平方

时间:2015-10-26 15:25:47

标签: julia

我有一系列不同大小的图像。

x x x x
x x x x
x x x x

我想将这些转换为带有设定填充颜色的正方形,以保持纵横比。

x x x x
x x x x
x x x x
0 0 0 0

有没有办法在Juila中执行此操作,最好使用Images.jl包。

1 个答案:

答案 0 :(得分:4)

假设您希望始终向上广播行数以使图像成方形,以下功能将为您提供所需的功能。

using Images, Colors

function square_up(image; value=RGB(0.,0.,0.))
    A = data(image)
    nrows, ncols = size(A)
    fill_in_mat = fill(value, (ncols-nrows, ncols))
    new_A = vcat(A, fill_in_mat)
    new_image = copyproperties(image, new_A)
    return new_image
end

以测试图像为例:

using TestImages

img = testimage("mandrill")
# Cut the bottom half out of the image
A = data(img)
println(size(A))
B = A[1:floor(size(A, 1)/2.),:]
B_image = copyproperties(img, B)

# Apply the function to get new image filled with `value`
# The default is to fill with RGB(0,0,0)
out_image = square_up(B_image)

# Check that its square
println(size(out_image, 1) == size(out_image, 2))

要设置填充颜色,只需弄乱value参数。