Hello, i took series of photos with closed lens cap and want to compare sensor read noise between different cameras.
Someone suggestion using FFT so i used ChatGPT to make Python script to convert ARW to FFT and Grayscale PNG files wonder if its correct script.
import rawpy import imageio import numpy as np import cv2 import os def arw_to_fft(arw_path): # Get file name and directory base_dir = os.path.dirname(arw_path) base_name = os.path.splitext(os.path.basename(arw_path))[0] # Step 1: Read ARW file using rawpy with rawpy.imread(arw_path) as raw: rgb = raw.postprocess() # Step 2: Convert RGB to grayscale gray = cv2.cvtColor(rgb, cv2.COLOR_RGB2GRAY) # Step 3: Compute 2D FFT and shift zero frequency to center f = np.fft.fft2(gray) fshift = np.fft.fftshift(f) # Step 4: Calculate magnitude spectrum magnitude_spectrum = 20 * np.log(np.abs(fshift) + 1) # Avoid log(0) # Normalize both images to 8-bit (0-255) for saving gray_8bit = cv2.normalize(gray, None, 0, 255, cv2.NORM_MINMAX).astype(np.uint8) mag_8bit = cv2.normalize(magnitude_spectrum, None, 0, 255, cv2.NORM_MINMAX).astype(np.uint8) # Step 5: Save the images gray_output_path = os.path.join(base_dir, f"{base_name}_gray.png") fft_output_path = os.path.join(base_dir, f"{base_name}_fft.png") cv2.imwrite(gray_output_path, gray_8bit) cv2.imwrite(fft_output_path, mag_8bit) print(f"Saved grayscale image: {gray_output_path}") print(f"Saved FFT spectrum image: {fft_output_path}") arw_to_fft('C:\image.arw')
Is there some GUI or guide on how to convert RAW to FFT so i can compare it with results from this script?
My final goal just get read noise from the sensor when i simply drop files in image processor it de-mosaicing and adds colors as well which i don't want.
Sorry, we do not provide
Sorry, we do not provide consulting on Python.
Probably ChatGPT do.
-- Alex Tutubalin @LibRaw LLC
My question is not about
My question is not about python script, but how to generate FFT using other GUI tools that are known to provide 100% correct FFT so that i could compare that correct FFT to the one i am getting in python.