numpy에서 3 차원 색상 값 (각 픽셀이 RGB 색상 인 이미지를 나타내는 데 2d)을 사용하고 세피아 필터를 적용하려고합니다 . 색상을 가정하면 r, g, b
에 의해 정의되는, 그것에 세피아 필터를 적용한 후 반환해야하는 색상은 다음과 같습니다numpy를 사용하여 3D 배열에 세피아 효과 적용
sepia_r = .393*r + .769*g + .189&b
sepia_g = .349*r + .686*g + .168*b
sepia_b = .272*r + .534*g + .131*b
가장 빠른 방법이 아마 (큰 배열 실시간으로 완수하는 것입니다 무엇 3 개의 긴 벡터의 1080x864 배열)?
나는 배열이 다른 크기입니다 (적어도 NumPy와 1.6.1에서이와 0.9.0을 scipy) 때문에 나를 위해'1.6.1'에 – bornruffians
작품을 작동하지 않습니다() 호출이 img.dot 생각 . 이 코드는 복사 + 붙여 넣기가 가능합니다. 시도 해봐! 행렬은 같은 크기로 곱셈 될 필요가 없습니다. 필요한 것은 두 개의 해당 축 *입니다. 하나는 첫 번째 행렬에, 두 번째 행렬에는 하나씩 있습니다. 이 경우는 다음과 같다 :'img'의 마지막 (색상 -) 축은 길이가 3이고'sepia_filter.T' 축은 0이다. 'numpy.dot'를 직접 사용할 수 있습니다. 첫 번째 배열의 마지막 축과 두 번째 배열의 두 번째 - 마지막 축을 사용하기 때문에 상자에서 바로 사용할 수 있습니다. 하나 또는 여러개가 필요하다면'np.tensordot'를 사용할 수 있습니다 – eickenberg
"ValueError : 행렬이 정렬되지 않았습니다."라는 오류 메시지가 나타납니다. 이미지의 흑백 버전을 사용하고 있기 때문에 이미지가 아닌 이미지가 사용되었을 수 있습니다. – bornruffians