[ステンドグラス のような イメージ] , Python(パイソン) 使って作ってみた ,ソースプログラムリスト あり

Python(パイソン) プログラム作ってみた インデックス へ

-----

2024.10.29 presented in [note] ( //note.com/runningWater/ )
2024.10.30 rewritten
----------
1 はじめに

これ以降に記述されている内容は、このようなコンピューター・プログラムを制作した、というような事を、ただ、述べているに過ぎない。

以下の記述を読んだ人が、それを単に参考にする、というのであれば、問題は無いと、思われる。

しかし、記述されている内容に沿って、その人が、そこに記されているのと同様の制作や作業を行った際に、その制作、作業、コンピューターの作動の結果、使用されたコンピューター等、様々な方面において、何らかの問題が発生しない、という保証は、全くない。

その制作、作業、コンピューターの作動の結果、その人や、その人が所属している組織、その人が使用した様々な機器、インフラストラクチャー等の、身の上にどのような事が起ころうとも、私は一切、責任を負わない。

このプログラムは、Python(パイソン) 言語を使って、記述されている。

----------
2 どのようなものを作ったのか

[Fig 1](下記)の、上部にある画像から、
[Fig 1]下部にある画像を、作成した。

Fig 1

上記の画像が作成されていった手順は、下図に示すようなものである。

Fig 2

(1) 作製の行程は、画像1 からのスタートとなる。
(2) 画像1 から 、画像2 が、色調変更して作られた。
(3) 画像2 と 画像3(パターン画像として使用)より、画像4 ([Fig 1]下部にある画像) が、作られた。

----------
3 構成

このモジュール群は、下記のモジュールより、構成されている。

 [ TestMakeImage ]
 [ MakeImage ]

以降に、これらのモジュールの内容を、記す。

これらのモジュールは、必要に応じて、下記に解説されているモジュールを、使用している。

[画像の色調を変える, 各色チャンネルごとにガンマ変換を使って], Python(パイソン) 使って作ってみた ,ソースプログラムリスト あり

[画像を、別の画像に、重ね塗りする・機能強化 版] , Python(パイソン) 使って作ってみた ,ソースプログラムリスト あり

[[画像処理, OpenCV2 使用] を 行う, 機能追加版, 多角形(内部ぬりつぶし)描画機能を追加] , Python(パイソン) 使って作ってみた ,ソースプログラムリスト あり

Python(パイソン) ,ソースプログラムリスト あり ,プログラム作ってみた ,[エラー処理] を 行う

----------
4 [ TestMakeImage ]

ファイル名 [ TestMakeImage.py ]

----------


import  MakeImage

module_name = "TestMakeImage"
function_name = "_____"

MakeImage   \
    .main_process  (  )

#========================================

----------

----------
5 [ MakeImage ]

ファイル名 [ MakeImage.py ]

----------


import  ImageDataTwoDimensionHandlingV3
import  VaryColorByGamma
import  CopyAndInsertImageDataV3

global_module_name = "MakeImage"

global_number_of_Source_ImageData = 6
global_list_file_name_of_ImageData_for_make_Source_ImageData =  [  \
              "Blue_1000_1000.png"                               \
           ,  "Blue_1000_1000.png"                               \
           ,  "Green_1000_1000.png"                             \
           ,  "Green_1000_1000.png"                             \
           ,  "Red_1000_1000.png"                                \
           ,  "Red_1000_1000.png"                                \
                                                                ]
global_list_Gamma_values_for_Source_ImageData =  [  \
                   [ 0.8  ,   1.0   ,  1.0  ] ,  [  2.0  ,   0.8   ,  0.8 ]   \
                ,  [ 0.8  ,   0.8   ,  0.8 ] ,   [  0.4  ,   0.4   ,  0.4 ]   \
                ,  [ 1.0  ,   1.0   ,  0.8 ] ,   [  0.8  ,   0.8   ,  2.0 ]   \
                                                                              ]
        #-------- about directing location for Pattern
global_list_location_xy_on_Pattern = [   \
                              [ 100 , 500 ]             \
                          ,   [ 220 , 500 ]             \
                          ,   [ 350 , 320 ]             \
                          ,   [ 700 , 350 ]             \
                          ,   [ 820 , 500 ]             \
                          ,   [ 730 , 700 ]             \
                                                      ]
        #-------- about file  ---------------------
global_abs_path_of_directory_Top ="E:/ForPython/ForTest/Test_H/"
global_path_of_directory_Input = "Input/"
global_path_of_directory_Output = "Output/"
global_path_of_directory_BaseImage = "BaseImage/"
global_path_of_directory_Pattern = "Pattern/"
global_path_of_directory_Source_Image = "SourceImage/"
global_path_of_directory_Source_Image_using = "SourceImageUsing/"
global_file_name_of_Pattern = "Pattern.png"

    #======================================
def  main_process  (  ) :

    function_name = "main_process"

    global  global_module_name
    global  global_number_of_Source_ImageDatal
    global  global_abs_path_of_directory_Top
    global  global_path_of_directory_Output

    print ( "==================================" )
    print ( "Enter into , Module = " + global_module_name
                         + " , function = " + function_name )
    print ( "==================================" )

        #=====================================
    make_Source_ImageData ( )

        #=====================================
    ins_CopyAndInsertImageDataV3  =  \
         CopyAndInsertImageDataV3           \
              .CopyAndInsertImageDataV3 ( )
         #----------------------------------------------------
    ins_CopyAndInsertImageDataV3   \
         .construct_ImageData ( 0 )
         #----------------------------------------------------
    ins_CopyAndInsertImageDataV3   \
         .construct_ImageData ( 1 )
    abs_path_of_Pattern    \
        = global_abs_path_of_directory_Top  \
                 + global_path_of_directory_Input \
                 + global_path_of_directory_Pattern  \
                 + "PatternImage_1000_1000.png"
    ins_CopyAndInsertImageDataV3   \
         .load_ImageData ( 1 ,  abs_path_of_Pattern )
         #----------------------------------------------------
    ins_CopyAndInsertImageDataV3   \
         .construct_ImageData ( 2 )
    abs_path_of_BaseImage    \
        = global_abs_path_of_directory_Top  \
                 + global_path_of_directory_Input \
                 + global_path_of_directory_BaseImage  \
                 + "BaseImage_1000_1000.png"
    ins_CopyAndInsertImageDataV3   \
         .load_ImageData ( 2 ,  abs_path_of_BaseImage )
         #------------------
    ins_CopyAndInsertImageDataV3   \
         .construct_ImageData ( 3 )
    ins_CopyAndInsertImageDataV3   \
         .load_ImageData ( 3 ,  abs_path_of_BaseImage )

            #=================================
    for  order_number_of_Source_ImageData  \
                in range ( 1 , ( global_number_of_Source_ImageData + 1 ) ) :

        draw_using_directed_Source_ImageData (  \
                        order_number_of_Source_ImageData
                     ,  ins_CopyAndInsertImageDataV3
                                                                      )
    #---------------------------------------------------
    ins_CopyAndInsertImageDataV3  \
         .write_InsertedSide_Generated_ImageData (  \
                ( global_abs_path_of_directory_Top \
                    + global_path_of_directory_Output \
                    + "Output.png"                              \
                )
                                                                         )

    print ( "==================================" )
    print ( "Exit from , Module = " + global_module_name
                         + " , function = " + function_name )
    print ( "==================================" )

#============================================
def  draw_using_directed_Source_ImageData (  \
                        arg_order_number_of_Source_ImageData
                     ,  arg_ins_CopyAndInsertImageDataV3
                                                                    )  :

    function_name = "draw_using_directed_Source_ImageData"

    global  global_module_name
    global  global_list_location_xy_on_Pattern

    print ( "==================================" )
    print ( "Module = " + global_module_name
                         + " , function = " + function_name )
    print ( "arg_order_number_of_Source_ImageData = " \
                  , arg_order_number_of_Source_ImageData )
    print ( "==================================" )

           #------------------------------------
    abs_path_of_Source_ImageData     \
            = make_abs_path_of_Source_ImageData (   \
                           arg_order_number_of_Source_ImageData )
    ins_ImageDataTwoDimensionHandling_one_Source_ImageData  \
          =  ImageDataTwoDimensionHandlingV3   \
                     .ImageDataTwoDimensionHandlingV3 (
                                 global_module_name
                              ,  function_name                     )
    ins_ImageDataTwoDimensionHandling_one_Source_ImageData  \
            .load_image_data   (
                                 global_module_name
                              ,  function_name
                              ,  abs_path_of_Source_ImageData
                                         )
    width_of_one_Source_ImageData  =  \
            ins_ImageDataTwoDimensionHandling_one_Source_ImageData  \
                         .get_width_of_ImageData ( )
    height_of_one_Source_ImageData  =  \
            ins_ImageDataTwoDimensionHandling_one_Source_ImageData  \
                         .get_height_of_ImageData ( )

    list_CopySource_From_and_To_xy = \
                               [  [ 0 , 0 ] ,  \
                                  [ ( width_of_one_Source_ImageData - 1 )   \
                                  , \
                                    ( height_of_one_Source_ImageData - 1 ) \
                                   ]  \
                                ]
                   #------------------------------------
    list_color_copying = [ [ 0 , 0 , 0 ] , [ 253 , 253 , 253 ] ]

    scale_rate_CopySource_to_InsertedSide = 1.0
    color_rate_CopySource_to_InsertedSide = 1.0

    w1 = int ( width_of_one_Source_ImageData / 2 )
    w2 = int ( height_of_one_Source_ImageData / 2 )
    list_BasicLocation_x_and_y_on_CopySource_ImageData = [ w1 , w2 ]
    list_BasicLocation_x_and_y_on_Pattern_ImageData  = [ w1 , w2 ]
    list_BasicLocation_x_and_y_on_InsertedSide_ImageData = [ w1 , w2 ]
            #-----------------------------------------------------
    arg_ins_CopyAndInsertImageDataV3    \
                 .set_ImageData ( 0  \
                   ,  ins_ImageDataTwoDimensionHandling_one_Source_ImageData )
           #------------------------------------------------------
    arg_ins_CopyAndInsertImageDataV3                \
        .copy_and_insert_ImageData (      \
                     "Y"  #arg_use_or_not_PatternImageData
                  ,  global_list_location_xy_on_Pattern \
                         [ arg_order_number_of_Source_ImageData - 1 ]
                  ,  list_color_copying
                  ,  list_CopySource_From_and_To_xy
                  ,  scale_rate_CopySource_to_InsertedSide
                  ,  color_rate_CopySource_to_InsertedSide

                  ,  list_BasicLocation_x_and_y_on_CopySource_ImageData
                  ,  list_BasicLocation_x_and_y_on_Pattern_ImageData
                  ,  list_BasicLocation_x_and_y_on_InsertedSide_ImageData

                  ,  "N"   # arg_do_rotation
                                 #arg_rotation_degree_of_inserting_on_InsertedSide_Source
                  ,  0
                                                  )

    return  arg_ins_CopyAndInsertImageDataV3

#======================================
def  make_Source_ImageData ( ) :

    function_name = "make_Source_ImageData"

    global  global_module_name
    global  global_number_of_Source_ImageData

    print ( "==================================" )
    print ( "Enter into , Module = " + global_module_name
                         + " , function = " + function_name )
    print ( "==================================" )

    for  order_number_of_Source_ImageData  \
                in range ( 1 , ( global_number_of_Source_ImageData + 1 ) ) :

        make_one_Source_ImageData ( order_number_of_Source_ImageData )

    print ( "==================================" )
    print ( "Exit from , Module = " + global_module_name
                         + " , function = " + function_name )
    print ( "==================================" )

#----------------------------------------------------------------
def  make_one_Source_ImageData (   \
               arg_order_number_of_Source_ImageData
                                                     )  :

    function_name = "make_one_Source_ImageData"

    global  global_module_name
    global  global_number_of_Source_ImageDatal
    global  global_list_file_name_of_ImageData_for_make_Source_ImageData
    global  global_list_Gamma_values_for_Source_ImageData

    global  global_abs_path_of_directory_Top
    global  global_path_of_directory_Input
    global  global_path_of_directory_Source_Image

    print ( "==================================" )
    print ( "Enter into , Module = " + global_module_name
                         + " , function = " + function_name )
    print ( "arg_order_number_of_Source_ImageData = "  \
                       , arg_order_number_of_Source_ImageData )
    print ( "==================================" )

    abs_path_of_Source_Image_using  \
          = global_abs_path_of_directory_Top       \
                    + global_path_of_directory_Input \
                    + global_path_of_directory_Source_Image   \
                    + global_path_of_directory_Source_Image_using   \
                    + global_list_file_name_of_ImageData_for_make_Source_ImageData \
                                     [ arg_order_number_of_Source_ImageData - 1 ]
                    #----------------------------------
    ins_VaryColorByGamma = \
            VaryColorByGamma        \
                   .VaryColorByGamma ( )
                    #----------------------------------
    ins_VaryColorByGamma            \
               .construct_ImageData ( 0  )
    ins_VaryColorByGamma            \
              .load_ImageData (  0 ,  abs_path_of_Source_Image_using )
    ins_VaryColorByGamma            \
               .construct_ImageData ( 1  )
    ins_VaryColorByGamma            \
               .load_ImageData (  1 , abs_path_of_Source_Image_using )
                             #------------
    list_using_Gamma_value =  \
               global_list_Gamma_values_for_Source_ImageData \
                      [ arg_order_number_of_Source_ImageData - 1 ]
    ins_VaryColorByGamma            \
               .set_Gamma_values ( list_using_Gamma_value )
                              #------------
    ins_VaryColorByGamma   \
              .vary_color_of_ImageData_by_Gamma ( )
                              #------------
    abs_path_of_Output_ImageData     \
            = make_abs_path_of_Source_ImageData (   \
                           arg_order_number_of_Source_ImageData )
    ins_VaryColorByGamma   \
                .write_ImageData_Varied_Color ( abs_path_of_Output_ImageData )

    print ( "==================================" )
    print ( "Exit from , Module = " + global_module_name
                         + " , function = " + function_name )
    print ( "==================================" )

#----------------------------------------------------------------
def  make_abs_path_of_Source_ImageData (   \
                           arg_order_number_of_Source_ImageData
                                                                  )  :

    function_name = "make_abs_path_of_Source_ImageData"

    global   global_abs_path_of_directory_Top
    global   global_path_of_directory_Output
    global   global_path_of_directory_Source_Image

    file_name = \
                  "Source_made_"    \
                     + str ( arg_order_number_of_Source_ImageData )  \
                     + ".png"
    return_abs_path     \
                = global_abs_path_of_directory_Top       \
                        + global_path_of_directory_Output \
                        + global_path_of_directory_Source_Image  \
                        + file_name
    return   return_abs_path

#========================================

----------

----------

Python(パイソン) プログラム作ってみた インデックス へ


この記事が気に入ったらサポートをしてみませんか?