mirror of
https://hub.njuu.cf/TheAlgorithms/Python.git
synced 2023-10-11 13:06:12 +08:00
digital_image_processing/convert_to_negative (#1216)
* digital_image_processing/convert_to_negative * added doc * added test code * Update convert_to_negative.py
This commit is contained in:
parent
02b717e364
commit
9316618611
30
digital_image_processing/convert_to_negative.py
Normal file
30
digital_image_processing/convert_to_negative.py
Normal file
@ -0,0 +1,30 @@
|
||||
"""
|
||||
Implemented an algorithm using opencv to convert a colored image into its negative
|
||||
"""
|
||||
|
||||
from cv2 import imread, imshow, waitKey, destroyAllWindows
|
||||
|
||||
|
||||
def convert_to_negative(img):
|
||||
# getting number of pixels in the image
|
||||
pixel_h, pixel_v = img.shape[0], img.shape[1]
|
||||
|
||||
# converting each pixel's color to its negative
|
||||
for i in range(pixel_h):
|
||||
for j in range(pixel_v):
|
||||
img[i][j] = [255, 255, 255] - img[i][j]
|
||||
|
||||
return img
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
# read original image
|
||||
img = imread("image_data/lena.jpg", 1)
|
||||
|
||||
# convert to its negative
|
||||
neg = convert_to_negative(img)
|
||||
|
||||
# show result image
|
||||
imshow("negative of original image", img)
|
||||
waitKey(0)
|
||||
destroyAllWindows()
|
@ -8,6 +8,7 @@ import digital_image_processing.filters.median_filter as med
|
||||
import digital_image_processing.filters.sobel_filter as sob
|
||||
import digital_image_processing.filters.convolve as conv
|
||||
import digital_image_processing.change_contrast as cc
|
||||
import digital_image_processing.convert_to_negative as cn
|
||||
from cv2 import imread, cvtColor, COLOR_BGR2GRAY
|
||||
from numpy import array, uint8
|
||||
from PIL import Image
|
||||
@ -15,6 +16,13 @@ from PIL import Image
|
||||
img = imread(r"digital_image_processing/image_data/lena_small.jpg")
|
||||
gray = cvtColor(img, COLOR_BGR2GRAY)
|
||||
|
||||
# Test: convert_to_negative()
|
||||
def test_convert_to_negative():
|
||||
negative_img = cn.convert_to_negative(img)
|
||||
# assert negative_img array for at least one True
|
||||
assert negative_img.any()
|
||||
|
||||
|
||||
# Test: change_contrast()
|
||||
def test_change_contrast():
|
||||
with Image.open("digital_image_processing/image_data/lena_small.jpg") as img:
|
||||
|
Loading…
Reference in New Issue
Block a user