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.sobel_filter as sob
|
||||||
import digital_image_processing.filters.convolve as conv
|
import digital_image_processing.filters.convolve as conv
|
||||||
import digital_image_processing.change_contrast as cc
|
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 cv2 import imread, cvtColor, COLOR_BGR2GRAY
|
||||||
from numpy import array, uint8
|
from numpy import array, uint8
|
||||||
from PIL import Image
|
from PIL import Image
|
||||||
@ -15,6 +16,13 @@ from PIL import Image
|
|||||||
img = imread(r"digital_image_processing/image_data/lena_small.jpg")
|
img = imread(r"digital_image_processing/image_data/lena_small.jpg")
|
||||||
gray = cvtColor(img, COLOR_BGR2GRAY)
|
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()
|
# Test: change_contrast()
|
||||||
def test_change_contrast():
|
def test_change_contrast():
|
||||||
with Image.open("digital_image_processing/image_data/lena_small.jpg") as img:
|
with Image.open("digital_image_processing/image_data/lena_small.jpg") as img:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user