def complex_dot_pattern(kind_num=3, whole_repeat=2, fg_color=np.array([1.0, 1.0, 1.0]), bg_color=np.array([0.15, 0.15, 0.15])):
    '\n    dot pattern 作る。\n\n    Parameters\n    ----------\n    kind_num : integer\n        作成するドットサイズの種類。\n        例えば、kind_num=3 ならば、1dot, 2dot, 4dot のパターンを作成。\n    whole_repeat : integer\n        異なる複数種類のドットパターンの組数。\n        例えば、kind_num=3, whole_repeat=2 ならば、\n        1dot, 2dot, 4dot のパターンを水平・垂直に2組作る。\n    fg_color : array_like\n        foreground color value.\n    bg_color : array_like\n        background color value.\n    reduce : bool\n        HDRテストパターンの3840x2160専用。縦横を半分にする。\n\n    Returns\n    -------\n    array_like\n        dot pattern image.\n\n    '
    max_dot_width = (2 ** kind_num)
    img_list = []
    for size_idx in range(kind_num)[::(- 1)]:
        dot_size = (2 ** size_idx)
        repeat = (max_dot_width // dot_size)
        dot_img = dot_pattern(dot_size, repeat, fg_color)
        img_list.append(dot_img)
        img_list.append((np.ones_like(dot_img) * bg_color))
    line_upper_img = np.hstack(img_list)
    line_upper_img = np.hstack([line_upper_img for x in range(whole_repeat)])
    line_lower_img = line_upper_img.copy()[:, ::(- 1), :]
    h_unit_img = np.vstack((line_upper_img, line_lower_img))
    img = np.vstack([h_unit_img for x in range((kind_num * whole_repeat))])
    return img
dot pattern 作る。

Parameters
----------
kind_num : integer
    作成するドットサイズの種類。
    例えば、kind_num=3 ならば、1dot, 2dot, 4dot のパターンを作成。
whole_repeat : integer
    異なる複数種類のドットパターンの組数。
    例えば、kind_num=3, whole_repeat=2 ならば、
    1dot, 2dot, 4dot のパターンを水平・垂直に2組作る。
fg_color : array_like
    foreground color value.
bg_color : array_like
    background color value.
reduce : bool
    HDRテストパターンの3840x2160専用。縦横を半分にする。

Returns
-------
array_like
    dot pattern image.
def complex_dot_pattern(kind_num=3, whole_repeat=2, fg_color=np.array([1.0, 1.0, 1.0]), bg_color=np.array([0.15, 0.15, 0.15])):
    '\n    dot pattern 作る。\n\n    Parameters\n    ----------\n    kind_num : integer\n        作成するドットサイズの種類。\n        例えば、kind_num=3 ならば、1dot, 2dot, 4dot のパターンを作成。\n    whole_repeat : integer\n        異なる複数種類のドットパターンの組数。\n        例えば、kind_num=3, whole_repeat=2 ならば、\n        1dot, 2dot, 4dot のパターンを水平・垂直に2組作る。\n    fg_color : array_like\n        foreground color value.\n    bg_color : array_like\n        background color value.\n    reduce : bool\n        HDRテストパターンの3840x2160専用。縦横を半分にする。\n\n    Returns\n    -------\n    array_like\n        dot pattern image.\n\n    '
    max_dot_width = (2 ** kind_num)
    img_list = []
    for size_idx in range(kind_num)[::(- 1)]:
        dot_size = (2 ** size_idx)
        repeat = (max_dot_width // dot_size)
        dot_img = dot_pattern(dot_size, repeat, fg_color)
        img_list.append(dot_img)
        img_list.append((np.ones_like(dot_img) * bg_color))
    line_upper_img = np.hstack(img_list)
    line_upper_img = np.hstack([line_upper_img for x in range(whole_repeat)])
    line_lower_img = line_upper_img.copy()[:, ::(- 1), :]
    h_unit_img = np.vstack((line_upper_img, line_lower_img))
    img = np.vstack([h_unit_img for x in range((kind_num * whole_repeat))])
    return img