[ステンドグラス のような イメージ] , Python(パイソン) 使って作ってみた ,ソースプログラムリスト あり
Python(パイソン) プログラム作ってみた インデックス へ
-----
2024.10.29 presented in [note] ( //note.com/runningWater/ )
2024.10.30 rewritten
----------
1 はじめに
これ以降に記述されている内容は、このようなコンピューター・プログラムを制作した、というような事を、ただ、述べているに過ぎない。
以下の記述を読んだ人が、それを単に参考にする、というのであれば、問題は無いと、思われる。
しかし、記述されている内容に沿って、その人が、そこに記されているのと同様の制作や作業を行った際に、その制作、作業、コンピューターの作動の結果、使用されたコンピューター等、様々な方面において、何らかの問題が発生しない、という保証は、全くない。
その制作、作業、コンピューターの作動の結果、その人や、その人が所属している組織、その人が使用した様々な機器、インフラストラクチャー等の、身の上にどのような事が起ころうとも、私は一切、責任を負わない。
このプログラムは、Python(パイソン) 言語を使って、記述されている。
----------
2 どのようなものを作ったのか
[Fig 1](下記)の、上部にある画像から、
[Fig 1]下部にある画像を、作成した。
上記の画像が作成されていった手順は、下図に示すようなものである。
(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(パイソン) プログラム作ってみた インデックス へ