336x280(권장), 300x250(권장), 250x250, 200x200 크기의 광고 코드만 넣을 수 있습니다.
opencv로 처리한 이미지에서 검은색 배경을 없애고 싶었다.
검색 결과 아래와 같은 코드로 처리할 수 있었다.
import numpy as np
import matplotlib.pyplot as plt
image = plt.imread('example.png')
plt.imshow(image)
plt.show()

image_copy = image.copy()
black_pixels_mask = np.all(image == [0, 0, 0], axis=-1)
non_black_pixels_mask = np.any(image != [0, 0, 0], axis=-1)
# or non_black_pixels_mask = ~black_pixels_mask
image_copy[black_pixels_mask] = [255, 255, 255]
image_copy[non_black_pixels_mask] = [0, 0, 0]
plt.imshow(image_copy)
plt.show()

즉, 검은색 픽셀 마스크만 따오고 싶을 때는 np.all(image == [0, 0, 0], axis=-1) 를 사용한다.
그리고 해당 마스크를 이용해서 기존 이미지를 덮어주면 된다.
위에서 사용한 np.all 과 np.any는 여기 정리했다.
2019/12/18 - [AI/PyTorch] - [numpy] .all() , .any()
위와 같이 마스크로 걸러내면 가로세로 크기는 기존이미지의 것과 동일하지만 dimension이 없어진다.
즉, RGB 채널이 없어지고 1차원으로 true or false 만 나타낸다.

요런식으로~
출처 : https://stackoverflow.com/questions/52735231/how-to-select-all-non-black-pixels-in-a-numpy-array