[断面画像を重ね合わせて、物体を3次元表示]の , [パラメーター値・保持用・サブグループ]

[断面画像を重ね合わせて、物体を3次元表示], Python(パイソン) 使って作ってみた ,ソースプログラムリスト あり へ

-----

2024.8.23 presented in [note] ( //note.com/runningWater/ )
2024.9.14 プログラム改変に伴う、書き直しを行った

----------
1 はじめに

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

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

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

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

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

----------
2 パラメーター値・保持用・サブグループ

ここでは、プログラムの動作を規定する重要な値を、[パラメーター]と呼んでいる。

それらの値を、XMLデータで記述しておき、モジュール群が起動されると、それが読み込まれて、プログラム内部の変数に格納される、というような形にしてある。

このようにしておくと、後日、プログラムの改変を伴わないで、パラメーター値の変更を行うことができる。(XMLデータ上の値を修正するだけですむ)。

パラメーター値を定義した、XMLデータは、下記の通り。

ファイル名 [XML_For_Parameters.xml]

----------


<?xml version="1.0" encoding="UTF-8" ?>

<value_for_parameters_controling_process>

    <value_for_parameters
        
        abs_path_of_base_directory = "E:ForPython/ForTest/Test_2/"
        
        path_of_output_directory = "Output/"
        path_of_CopyOfDisplayingImageData_directory = "CopyOfDisplayImageData/"
        file_name_part_1_of_CopyOfDisplayingImageData = "Copy_"
        file_name_ending_part_of_CopyOfDisplayingImageData = ".png"
        
         insert_date_and_time_Y_N = "Y"
         x_insert_date_and_timee = "50"
         y_insert_date_and_timee = "120"
         text_font_color_Blue = "60"
         text_font_color_Green = "20"
         text_font_color_Red = "200"
         
         path_of_input_directory = "Input/"
         
         path_of_BaseImageDataForDisplay_directory = "BaseImageDataForDisplay/"
         file_name_part_1_of_BaseImageDataForDisplay = "BaseImage_1"
         file_name_ending_part_of_BaseImageDataForDisplay = ".png"
         
         x_value_of_perspective_drawing_vanishing_point = "-1000"
         drawing_color_sleshold = "5"
         
          path_of_DrawingImageData_directory = "DrawingImageData/"
          file_name_part_1_of_DrawingImageData = "DrawingImageData"
          file_name_ending_part_of_DrawingImageData = ".png"
          
          number_of_related_files_from = "1"
          number_of_related_files_to = "50"

          from_z = "1"
          to_z = "50"
          incliment_z = "1"

         conversion_rate_from_WorldSpace_to_ViewSpace_XY = "0.4"
         conversion_rate_from_WorldSpace_to_ViewSpace_Z = "1.4"
         conversion_rate_from_WorldSpace_to_ImageDataSpace = "0.5"
         margin_value = "10"

         incliment_x = "4"
         incliment_y = "4"
         
         display_axis = "___" 
         
         window_for_display_image_TopLeft_x = "345"    
         window_for_display_image_TopLeft_y = "1"           
         window_for_display_image_window_MaxSize = "1000"
             
    >

    </value_for_parameters>

</value_for_parameters_controling_process> 

----------

上記のXMLデータを読み込み、その値を保持するモジュールの内容は、下記のとおりである。

このモジュールの中から、下記に記述したモジュールへの呼び出しが、行われる。

Python(パイソン) ,ソースプログラムリスト あり ,プログラム作ってみた ,[XML データ を、読み込み、そこに記述されている内容を、利用可能な形にする] を 行う

----------
ファイル名 [ParametersContainer.py]

----------


#------------------------------------
# ParametersContainer
#------------------------------------

import  XMLHandling

MODULE_NAME = "ParametersContainer"

ABS_PATH_OF_XML_FILE = "E:ForPython/ForTest/Test_2/XMLData/XML_For_Parameters.xml"

global_list_of_XML_attribute = [   \
           "abs_path_of_base_directory"
         , "path_of_output_directory"
         , "path_of_CopyOfDisplayingImageData_directory"
         , "file_name_part_1_of_CopyOfDisplayingImageData"
         , "file_name_ending_part_of_CopyOfDisplayingImageData"

         , "insert_date_and_time_Y_N"
         , "x_insert_date_and_timee"
         , "y_insert_date_and_timee"
         , "text_font_color_Blue"
         , "text_font_color_Green"
         , "text_font_color_Red"

         , "path_of_input_directory"

         , "path_of_BaseImageDataForDisplay_directory"
         , "file_name_part_1_of_BaseImageDataForDisplay"
         , "file_name_ending_part_of_BaseImageDataForDisplay"

         , "x_value_of_perspective_drawing_vanishing_point"
         , "drawing_color_sleshold"

         , "path_of_DrawingImageData_directory"
         , "file_name_part_1_of_DrawingImageData"
         , "file_name_ending_part_of_DrawingImageData"

#***********************************************************
         , "number_of_related_files_from"
         , "number_of_related_files_to"

         , "from_z"
         , "to_z"
         , "incliment_z"

         , "conversion_rate_from_WorldSpace_to_ViewSpace_XY"
         , "conversion_rate_from_WorldSpace_to_ViewSpace_Z"
         , "conversion_rate_from_WorldSpace_to_ImageDataSpace"
         , "margin_value"

         , "incliment_x"
         , "incliment_y"

         , "display_axis"
         
         , "window_for_display_image_TopLeft_x"    
         , "window_for_display_image_TopLeft_y"           
         , "window_for_display_image_window_MaxSize"
#***********************************************************
                           ]

global_par_abs_path_of_base_directory = " "
global_par_path_of_output_directory  = " "
global_par_path_of_CopyOfDisplayingImageData_directory = " "
global_par_file_name_part_1_of_CopyOfDisplayingImageData = " "
global_par_file_name_ending_part_of_CopyOfDisplayingImageData = " "

global_par_insert_date_and_time_Y_N  = " "
global_par_x_insert_date_and_timee = " "
global_par_y_insert_date_and_timee = " "
global_par_text_font_color_Blue = 0
global_par_text_font_color_Green = 0
global_par_text_font_color_Red  = 0

global_par_path_of_input_directory = " "
global_par_path_of_BaseImageDataForDisplay_directory = " "
global_par_file_name_part_1_of_BaseImageDataForDisplay = " "
global_par_file_name_ending_part_of_BaseImageDataForDisplay = " "

global_par_x_value_of_perspective_drawing_vanishing_point = 0
global_par_drawing_color_sleshold = 0

global_par_path_of_DrawingImageData_directory = " "
global_par_file_name_part_1_of_DrawingImageData = " "
global_par_file_name_ending_part_of_DrawingImageData = " "

#******************************************************
global_par_number_of_related_files_from = 0
global_par_number_of_related_files_to = 0

global_par_from_z = 0
global_par_to_z = 0
global_par_incliment_z = 0

global_par_conversion_rate_from_WorldSpace_to_ViewSpace_XY = 0.0
global_par_conversion_rate_from_WorldSpace_to_ViewSpace_Z = 0.0
global_par_conversion_rate_from_WorldSpace_to_ImageDataSpace = 0.0
global_par_margin_value = 0

global_par_incliment_x = 0
global_par_incliment_y = 0

global_par_display_axis = "   "
#******************************************************


    # ------------------------
def initialize ( ) :

    function_name = "initialize"

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

    ins_XMLHandling = XMLHandling.XMLHandling (
              MODULE_NAME  # arg_requester_module
            , function_name  # arg_requester_function
            , ABS_PATH_OF_XML_FILE  # arg_path_of_XML_File
            , global_list_of_XML_attribute
                              )
    ins_XMLHandling    \
        .load_XML_data (
                MODULE_NAME    # arg_requester_module
              , function_name  # arg_requester_function
                       )

         # ---------- global declaration -----------------
    global  global_par_abs_path_of_base_directory
    global  global_par_path_of_output_directory
    global  global_par_path_of_CopyOfDisplayingImageData_directory
    global  global_par_file_name_part_1_of_CopyOfDisplayingImageData
    global  global_par_file_name_ending_part_of_CopyOfDisplayingImageData
                 #------------------------------
    global  global_par_insert_date_and_time_Y_N
    global  global_par_x_insert_date_and_timee
    global  global_par_y_insert_date_and_timee
    global  global_par_text_font_color_Blue
    global  global_par_text_font_color_Green
    global  global_par_text_font_color_Red
                 #------------------------------
    global  global_par_path_of_input_directory
    global  global_par_path_of_BaseImageDataForDisplay_directory
    global  global_par_file_name_part_1_of_BaseImageDataForDisplay
    global  global_par_file_name_ending_part_of_BaseImageDataForDisplay

    global  global_par_x_value_of_perspective_drawing_vanishing_point
    global  global_par_drawing_color_sleshold

    global  global_par_path_of_DrawingImageData_directory
    global  global_par_file_name_part_1_of_DrawingImageData
    global  global_par_file_name_ending_part_of_DrawingImageData

#*************************************************
    global  global_par_number_of_related_files_from
    global  global_par_number_of_related_files_to

    global  global_par_from_z
    global  global_par_to_z
    global  global_par_incliment_z

    global  global_par_conversion_rate_from_WorldSpace_to_ViewSpace_XY
    global  global_par_conversion_rate_from_WorldSpace_to_ViewSpace_Z
    global  global_par_conversion_rate_from_WorldSpace_to_ImageDataSpace
    global  global_par_margin_value

    global  global_par_incliment_x
    global  global_par_incliment_y

    global  global_par_display_axis
    
    global  global_par_window_for_display_image_TopLeft_x
    global  global_par_window_for_display_image_TopLeft_y           
    global  global_par_window_for_display_image_window_MaxSize
#*************************************************

         # --------- set values from XML -----------------
    global_par_abs_path_of_base_directory \
        = set_value_from_XML ( 1 , ins_XMLHandling )
    global_par_path_of_output_directory  \
         = set_value_from_XML ( 2 , ins_XMLHandling )
    global_par_path_of_CopyOfDisplayingImageData_directory \
                   = set_value_from_XML ( 3 , ins_XMLHandling )
    global_par_file_name_part_1_of_CopyOfDisplayingImageData \
                   = set_value_from_XML ( 4 , ins_XMLHandling )
    global_par_file_name_ending_part_of_CopyOfDisplayingImageData  \
                   = set_value_from_XML ( 5 , ins_XMLHandling )
                 #------------------------------
    global_par_insert_date_and_time_Y_N  \
          = set_value_from_XML ( 6 , ins_XMLHandling )
    global_par_x_insert_date_and_timee \
          = set_value_from_XML ( 7 , ins_XMLHandling )
    global_par_y_insert_date_and_timee \
          = set_value_from_XML ( 8 , ins_XMLHandling )
    global_par_text_font_color_Blue \
          = set_value_from_XML ( 9 , ins_XMLHandling )
    global_par_text_font_color_Green \
          = set_value_from_XML ( 10 , ins_XMLHandling )
    global_par_text_font_color_Red  \
          = set_value_from_XML ( 11 , ins_XMLHandling )
                 #------------------------------
    global_par_path_of_input_directory  \
          = set_value_from_XML ( 12 , ins_XMLHandling )
    global_par_path_of_BaseImageDataForDisplay_directory  \
          = set_value_from_XML ( 13 , ins_XMLHandling )
    global_par_file_name_part_1_of_BaseImageDataForDisplay  \
          = set_value_from_XML ( 14 , ins_XMLHandling )
    global_par_file_name_ending_part_of_BaseImageDataForDisplay  \
          = set_value_from_XML ( 15 , ins_XMLHandling )
                 #----------------------------
    global_par_x_value_of_perspective_drawing_vanishing_point  \
          = set_value_from_XML ( 16 , ins_XMLHandling )
    global_par_drawing_color_sleshold  \
          = set_value_from_XML ( 17 , ins_XMLHandling )
                 #----------------------------
    global_par_path_of_DrawingImageData_directory \
              = set_value_from_XML ( 18 , ins_XMLHandling )
    global_par_file_name_part_1_of_DrawingImageData  \
              = set_value_from_XML ( 19 , ins_XMLHandling )
    global_par_file_name_ending_part_of_DrawingImageData  \
              = set_value_from_XML ( 20 , ins_XMLHandling )

#***************************************************************
    global_par_number_of_related_files_from  \
              = set_value_from_XML ( 21 , ins_XMLHandling )
    global_par_number_of_related_files_to  \
              = set_value_from_XML ( 22, ins_XMLHandling )

    global_par_from_z  \
              = set_value_from_XML ( 23 , ins_XMLHandling )
    global_par_to_z  \
              = set_value_from_XML ( 24 , ins_XMLHandling )
    global_par_incliment_z  \
              = set_value_from_XML ( 25 , ins_XMLHandling )

    global_par_conversion_rate_from_WorldSpace_to_ViewSpace_XY  \
              = set_value_from_XML ( 26 , ins_XMLHandling )
    global_par_conversion_rate_from_WorldSpace_to_ViewSpace_Z  \
              = set_value_from_XML ( 27 , ins_XMLHandling )
    global_par_conversion_rate_from_WorldSpace_to_ImageDataSpace  \
              = set_value_from_XML ( 28 , ins_XMLHandling )
    global_par_margin_value  \
              = set_value_from_XML ( 29 , ins_XMLHandling )

    global_par_incliment_x  \
              = set_value_from_XML ( 30 , ins_XMLHandling )
    global_par_incliment_y  \
              = set_value_from_XML ( 31 , ins_XMLHandling )

    global_par_display_axis  \
              = set_value_from_XML ( 32 , ins_XMLHandling )
              
    global_par_window_for_display_image_TopLeft_x  \
              = set_value_from_XML ( 33 , ins_XMLHandling )    
    global_par_window_for_display_image_TopLeft_y  \
              = set_value_from_XML ( 34 , ins_XMLHandling )           
    global_par_window_for_display_image_window_MaxSize  \
              = set_value_from_XML ( 35 , ins_XMLHandling )
#***************************************************************

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

#--------------------------------------
def display_parameter_value ( ) :

    function_name = "display_parameter_value"

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

    print ( "global_par_abs_path_of_base_directory = " \
               + str ( global_par_abs_path_of_base_directory ) )
    print ( "global_par_path_of_output_directory = " \
               + str ( global_par_path_of_output_directory ) )
    print ( "global_par_path_of_CopyOfDisplayingImageData_directory = " \
               + str ( global_par_path_of_CopyOfDisplayingImageData_directory ) )
    print ( "global_par_file_name_part_1_of_CopyOfDisplayingImageData = " \
               + str ( global_par_file_name_part_1_of_CopyOfDisplayingImageData ) )
    print ( "global_par_file_name_ending_part_of_CopyOfDisplayingImageData = " \
               + str ( global_par_file_name_ending_part_of_CopyOfDisplayingImageData ) )

    print ( "global_par_insert_date_and_time_Y_N = " \
               + str ( global_par_insert_date_and_time_Y_N ) )
    print ( "global_par_x_insert_date_and_timee = " \
               + str ( global_par_x_insert_date_and_timee ) )
    print ( "global_par_y_insert_date_and_timee = " \
               + str ( global_par_y_insert_date_and_timee ) )
    print ( "global_par_text_font_color_Blue = " \
               + str ( global_par_text_font_color_Blue ) )
    print ( "global_par_text_font_color_Green = " \
               + str ( global_par_text_font_color_Green ) )
    print ( "global_par_text_font_color_Red = " \
               + str ( global_par_text_font_color_Red ) )
             #-------------------------------
    print ( "global_par_path_of_input_directory = " \
               + str ( global_par_path_of_input_directory ) )
    print ( "global_par_path_of_BaseImageDataForDisplay_directory = " \
               + str ( global_par_path_of_BaseImageDataForDisplay_directory ) )
    print ( "global_par_file_name_part_1_of_BaseImageDataForDisplay = " \
               + str ( global_par_file_name_part_1_of_BaseImageDataForDisplay ) )
    print ( "global_par_file_name_ending_part_of_BaseImageDataForDisplay = " \
               + str ( global_par_file_name_ending_part_of_BaseImageDataForDisplay ) )
            #--------------------------------------
    print ( "global_par_x_value_of_perspective_drawing_vanishing_point = "  \
               + str ( global_par_x_value_of_perspective_drawing_vanishing_point ) )
    print ( "global_par_drawing_color_sleshold = "  \
               + str ( global_par_drawing_color_sleshold ) )
            #--------------------------------------
    print ( "global_par_path_of_DrawingImageData_directory = " \
               + str ( global_par_path_of_DrawingImageData_directory ) )
    print ( "global_par_file_name_part_1_of_DrawingImageData = " \
               + str ( global_par_file_name_part_1_of_DrawingImageData ) )
    print ( "global_par_file_name_ending_part_of_DrawingImageData = " \
               + str ( global_par_file_name_ending_part_of_DrawingImageData ) )

#*************************************************
    print ( "global_par_number_of_related_files_from = " \
               , global_par_number_of_related_files_from )
    print ( "global_par_number_of_related_files_to = " \
               , global_par_number_of_related_files_to )
    print ( "global_par_from_z = " \
               , global_par_from_z )
    print ( "global_par_to_z = " \
               , global_par_to_z )
    print ( "global_par_incliment_z = " \
               , global_par_incliment_z )
    print ( "global_par_conversion_rate_from_WorldSpace_to_ViewSpace_XY = " \
               , global_par_conversion_rate_from_WorldSpace_to_ViewSpace_XY )
    print ( "global_par_conversion_rate_from_WorldSpace_to_ViewSpace_Z = " \
               , global_par_conversion_rate_from_WorldSpace_to_ViewSpace_Z )
    print ( "global_par_conversion_rate_from_WorldSpace_to_ImageDataSpace = " \
               , global_par_conversion_rate_from_WorldSpace_to_ImageDataSpace )
    print ( "global_par_margin_value = " \
               , global_par_margin_value )
    print ( "global_par_incliment_x = " \
               , global_par_incliment_x )
    print ( "global_par_incliment_y = " \
               , global_par_incliment_y )
    print ( "global_par_display_axis = " \
               , global_par_display_axis )

      #------------------------------------------------
    print ( "==================================" )
    print ( "Exit from , Module = " + MODULE_NAME
                      + " , function = " + function_name )
    print ( "==================================" )

    return

  #--------------------------------
def set_value_from_XML (
              arg_order_number_in_attribute_list
            , arg_ins_XMLHandling
                        ) :

    function_name = "set_value_from_XML"

    return_value \
       = arg_ins_XMLHandling  \
            .get_value_of_XML_data (
                      MODULE_NAME
                    , function_name
                    , 1  # order_number_of_child_of_XML_data
                    , arg_order_number_in_attribute_list
                    , "Y"    # message_display
                                 )
    return return_value




[断面画像を重ね合わせて、物体を3次元表示], Python(パイソン) 使って作ってみた ,ソースプログラムリスト あり へ


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