code: def click_image_load(self):
      self.__user_pattern = [0 for i in range(32 * 32)]
      Canvas.delete(self.__widget, "all")
  
      index_digit = int(math.floor(random.random() * 10))
      list_file_digit_sample = (
          IMAGE_DIGIT_SAMPLES.GET_LIST_IMAGE_SAMPLES(index_digit)
      )
  
      index_image = int(
          math.floor(random.random() * len(list_file_digit_sample))
      )
      file_name = list_file_digit_sample[index_image]
      data = read_image(file_name)
  
      image_pattern = rgb2gray(data)
      for y in range(32):
          for x in range(32):
              linear_index = y * 32 + x
              if image_pattern[linear_index] < 128:
                  self.__user_pattern[linear_index] = 1
                  self.__widget.create_rectangle(
                      x * 10,
                      y * 10,
                      x * 10 + 10,
                      y * 10 + 10,
                      fill=self.__color,
                      width=0,
                  )
  
imports: from pyclustering.nnet.som import som, type_conn
  from pyclustering.samples.definitions import IMAGE_DIGIT_SAMPLES
  from pyclustering.utils import read_image, rgb2gray
  from tkinter import *
  from tkinter import messagebox
  import math
  import pickle
  import os
  import random
label_desc: Use image node_id 8 for calling the digit_application obj's underlying member method code with example usage: obj.click_image_load() without return types