ncxlib
  • ⚡Welcome
  • Getting Started
    • Quickstart
    • API Documentation
      • Overview
        • Neural Network
          • _compile
          • add_layer
          • forward_propagate_all
          • forward_propagate_all_no_save
          • back_propagation
          • train
          • predict
          • evaluate
          • save_model
          • load_model
        • Activation
          • ReLU
          • LeakyReLU
          • Sigmoid
          • Softmax
          • Tanh
        • Layer
          • InputLayer
          • FullyConnectedLayer
          • OutputLayer
        • LossFunction
          • MeanSquaredError
          • BinaryCrossEntropy
          • CategoricalCrossEntropy
        • Optimizer
          • SGD
          • SGDMomentum
          • RMSProp
          • Adam
        • Initializer
          • HeNormal
          • Zero
        • PreProcessor
          • OneHotEncoder
          • MinMaxScaler
          • Scaler
          • ImageRescaler
          • ImageGrayscaler
        • DataLoader
          • CSVDataLoader
          • ImageDataLoader
        • Generators
          • random_array
          • integer_array
          • generate_training_data
        • Utils
          • train_test_split
          • k_fold_cross_validation
Powered by GitBook
On this page
  1. Getting Started
  2. API Documentation
  3. Overview
  4. PreProcessor

ImageGrayscaler

class ImageGrayscaler(Preprocessor):
    def __init__(self):
        super().__init__()

    def img_to_grayscale(self, image: np.ndarray) -> np.ndarray:
        grayscale_image = []
        for r, g, b in image:
            gray = int(0.299 * r + 0.587 * g + 0.114 * b)
            grayscale_image.append(gray)

        return np.array(grayscale_image)

    def convert_all_img_to_grayscale(self, dataset: Dataset) -> pd.DataFrame:
        imgs = []

        data = dataset.data.copy()
        for _, row in data.iterrows():
            rgb_pixels = row["data"]
            grayscale_image = self.img_to_grayscale(rgb_pixels)
            img_array = np.array(grayscale_image)
            imgs.append({"title": row["title"], "data": img_array, "target": row["target"]})

        dataframe = pd.DataFrame(imgs)
        dataframe["title"] = dataframe["title"].astype("string")
        if not dataset.label_numeric:
            dataframe["target"] = dataframe["target"].astype("string")

        return dataframe

    def apply(self, dataset: Dataset) -> Dataset:
        dataset.data = self.convert_all_img_to_grayscale(dataset)
        return dataset
PreviousImageRescalerNextDataLoader

Last updated 7 months ago