【发布时间】:2014-12-16 20:16:18
【问题描述】:
使用 Images 包,我可以打开彩色图像,将其转换为灰度,然后:
using Images
img_gld = imread("...path to some color jpg...")
img_gld_gs = convert(Image{Gray},img_gld)
#change from floats to Array of values between 0 and 255:
img_gld_gs = reinterpret(Uint8,data(img_gld_gs))
现在我有一个 1920X1080 的 Uint8 数组:
julia> img_gld_gs
1920x1080 Array{Uint8,2}
现在我想获得 Uint8 值的二维数组的直方图:
julia> hist(img_gld_gs)
(0.0:50.0:300.0,
6x1080 Array{Int64,2}:
1302 1288 1293 1302 1297 1300 1257 1234 … 12 13 13 12 13 15 14
618 632 627 618 623 620 663 686 189 187 187 188 185 183 183
0 0 0 0 0 0 0 0 9 9 8 7 8 7 7
0 0 0 0 0 0 0 0 10 12 9 7 13 7 9
0 0 0 0 0 0 0 0 1238 1230 1236 1235 1230 1240 1234
0 0 0 0 0 0 0 0 … 462 469 467 471 471 468 473)
但是,我希望直方图中的 256 个位置显示每个值出现的总次数,而不是 6x1080。我试过了:
julia> hist(img_gld_gs,256)
但这给出了:
(2.0:1.0:252.0,
250x1080 Array{Int64,2}:
所以不是 256x1080 数组,而是 250x1080。有什么方法可以强制它拥有 256 个 bin(无需编写我自己的 hist 函数)?我希望能够比较不同的图像,并且希望每个图像的直方图具有相同数量的 bin。
【问题讨论】: