// Closing (dilation followed by erosion) closed = imclose(binary, se); 8.1 Simple Thresholding // Global threshold threshold = 120; segmented = gray_img > threshold; imshow(segmented); 8.2 Otsu’s Thresholding // Compute Otsu threshold automatically [level, intensity] = otsu_thresh(gray_img); bw_otsu = gray_img > level; 8.3 Connected Components Labeling [labeled_img, num_objects] = bwlabel(bw_otsu); disp("Number of objects detected: " + string(num_objects)); 9. Fourier Transform for Frequency Domain Processing // Compute FFT F = fft2(double(gray_img)); F_shifted = fftshift(F); // Magnitude spectrum magnitude = log(abs(F_shifted) + 1); imshow(magnitude, []);
// Install SIVP from ATOMS (Scilab’s package manager) atomsInstall("SIVP") // Restart Scilab after installation // Load the toolbox exec("SCI/modules/sivp/macros/sivp_loader.sce", -1) Alternatively, use core functions ( imread , imshow , imwrite ) available in recent Scilab versions. 3.1 Read, Display, and Write Images // Read an image img = imread('camera.jpg'); // Display image imshow(img); digital image processing using scilab pdf
// Apply filter F_filtered = F_shifted .* H; F_restored = ifftshift(F_filtered); filtered_img = abs(ifft2(F_restored)); imshow(uint8(filtered_img)); // Full image processing pipeline function processed = process_image(path) // 1. Read img = imread(path); // 2. Convert to grayscale if size(img, 3) == 3 img = rgb2gray(img); end // Closing (dilation followed by erosion) closed =
// Threshold to create binary image binary = gray_img > 128; // Structuring element (disk of radius 3) se = [0 1 0; 1 1 1; 0 1 0]; Read img = imread(path); // 2
// Get image dimensions (rows, cols, channels) size(img) gray_img = rgb2gray(img); imshow(gray_img); 3.3 Access and Modify Pixels // Access pixel at row 100, column 150 pixel = img(100, 150, :); // Set a region of interest to black img(50:100, 50:100, :) = 0; 4. Image Enhancement 4.1 Histogram Equalization Improves contrast by spreading intensity values.
// Opening (erosion followed by dilation) opened = imopen(binary, se);
Comments
Comments have to be in English, and in full sentences. They cannot be abusive or personal. Please abide by our community guidelines for posting your comments.
We have migrated to a new commenting platform. If you are already a registered user of The Hindu and logged in, you may continue to engage with our articles. If you do not have an account please register and login to post comments. Users can access their older comments by logging into their accounts on Vuukle.