컬러 이미지를로드하고 그레이 스케일로 변환 한 다음 파일의 데이터를 반전시키고 싶습니다.OpenCV로 파이썬에서 이미지 반전하기
내가 필요한 것 : OpenCV의에서 배열 반복이 공식으로 모든 단일 값을 변경하려면 (이 잘못 될 수도 있지만 나를 위해 합리적인 것 같다) :
img[x,y] = abs(img[x,y] - 255)
하지만 난 왜 이해가 안 돼요 작동하지 않습니다 :
def inverte(imagem, name):
imagem = abs(imagem - 255)
cv2.imwrite(name, imagem)
def inverte2(imagem, name):
for x in np.nditer(imagem, op_flags=['readwrite']):
x = abs(x - 255)
cv2.imwrite(name, imagem)
if __name__ == '__main__':
nome = str(sys.argv[1])
image = cv2.imread(nome)
gs_imagem = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
inverte(gs_imagem, "invertida.png")
inverte2(gs_imagem, "invertida2.png")
나는 명시 적 루프를하고 싶지 않습니다. (나는 더 파이썬 적이 되려고합니다.) 나는 하나의 이미지에서 흰색 배경이 검은 색으로 변하는 것을 볼 수 있지만, 다른 색이 많이 (있는 경우) 변경하지 않는 것처럼 보입니다.
고마워요! 파이썬에서 표준이 서명되지 않은 int임을 알지 못했습니다 ... – Mansueli
깔끔하고 간단 할 것 같지 않았습니다. 감사합니다. – Nit
정말로해야 할 때가 아니라면 휠을 재발 명하지 마십시오. 데이터를 반전하려면 대신 [Not] (http://docs.opencv.org/2.4/modules/core/doc/operations_on_arrays.html#bitwise-not) (일명'bitwise_not')를 사용하십시오. – vaxquis