May-08-2022, 11:10 AM
Hi everyone. I'm new in python. Now I'm trying to write an image filter, according to the next algorithm:
![[Image: xn4U8.jpg]](https://i.stack.imgur.com/xn4U8.jpg)
i is a row, j is a column, m(i,j) is a pixel, s(i,j) is a sum of pixels, max(m(i,j)) is a max pixel in a row, k is a coefficient (0.7), m is an array of RGB average.
Before using this algorithm I firstly need to convert the image to grayscale. Here a code in python:
While running this code I get the error in line 30
What is the reason of an error. Could you please help to correct this code?
Thanks!
Here's an example of image filter work:
![[Image: xn4U8.jpg]](https://i.stack.imgur.com/xn4U8.jpg)
i is a row, j is a column, m(i,j) is a pixel, s(i,j) is a sum of pixels, max(m(i,j)) is a max pixel in a row, k is a coefficient (0.7), m is an array of RGB average.
Before using this algorithm I firstly need to convert the image to grayscale. Here a code in python:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
import cv2 import numpy as np import matplotlib.pyplot as plt img_path = 'image.jpg' img = cv2.imread(img_path) imgshape = img.shape fix_img = cv2.cvtColor(img, cv2.COLOR_BGR2RGB) R, G, B = fix_img[:,:, 0 ], fix_img[:,:, 1 ], fix_img[:,:, 2 ] grayscale_img = np.mean(fix_img, axis = 2 ) s = np.array([ 0 ][ 0 ]) b = np.ones(imgshape[: 2 ]) k = 0.7 rows, cols = imgshape[: 2 ] #(192, 184, 3) s = np.array([ 0 ][ 0 ]) b = np.ones(imgshape[: 2 ]) k = 0.7 rows, cols = imgshape[: 2 ] #(192, 184, 3) for j in range (grayscale_img.shape[ 1 ]): for i in range (grayscale_img.shape[ 0 ]): max = np.amax(grayscale_img, axis = 1 )[j] m = grayscale_img[j,i] s[j,i] = s[j,i] + m if s[j,i] > = (k * max ): s[j,i] = s[j,i] - (k * max ) s[j,i] = s[j,i] + m b[j,i] = 1 else : s[j,i] = s[j,i] + m b[j,i] = 0 cv2.waitKey() cv2.destroyAllWindows() |
Quote:IndexError: too many indices for array: array is 0-dimensional, but 2 were indexed
What is the reason of an error. Could you please help to correct this code?
Thanks!
Here's an example of image filter work:
![[Image: fJivZ.png]](https://i.stack.imgur.com/fJivZ.png)