2017-12-06 6 views
1

전송 비디오가 있습니다. 각 프레임은 다음과 같습니다 : 나는 같은 시간 미분 뭔가를 계산 한비디오 프레임 사이의 재조정 시간 차이

enter image description here

.

enter image description here

움직이는 입자가있다 : F (i)는 i 번째 프레임 인 경우, 다음의 화상이 2 * F (I) -f (I + 1) -f (I-1) 인 이 시간의 파생 된 비디오에서 더 분명한 서명. 문제는 플로트 이미지의 선형 조합 ([-1,1]의 강도 포함)이 반드시 플로팅 이미지가 아니기 때문에 (즉, 강도가 [-1,1] 범위에 있지 않기 때문에) 실제로 비디오로 만들 수 없다는 것입니다. 따라서 이미지를 [-1,1]이되도록 재조정하고 싶습니다.

from sklearn import preprocessing 

images = [image1, image2, ...] 
#each imagek is a 1D image array 

scaler = preprocessing.MinMaxScaler([-1,1]) 
scaler.fit(images) 

rescaled_images = scaler.transform(images) 

이 방법은 잡음을 증폭 및 콘트라스트를 제거 :

난 sklearn의 전처리 모듈을 사용하려고. enter image description here

정보를 잃지 않고 이러한 시간 이미지를 [-1,1]로 재조정 할 수있는 방법에 대한 권장 사항은 무엇입니까? 어떤 도움을 주셔서 감사합니다!

는 내 댓글에서 언급 한 바와 같이 MinMaxScaler이 기능에 대한이기 때문에 작동하지 않는 이유는

+0

그 이유는 귀하의 데이터. 당신은 이미지와 같은 스케일을 원한다. – ncfirth

답변

1

(내가 시간이 없어서 그래픽과 문제가 있음을 나타냅니다 제대로 어제었지만, 질문을 삭제) 스케일링,하지만 전체 이미지를 스케일링하고 싶습니다. numpy 배열을 이미지를하는 가정으로 될 것이다 당신의 가장 쉬운 방법은 다음과 같습니다

# create a 128x128 image to work with 
image = np.random.random((128, 128),) 
# scale to [0, 1] 
newimage = (image - image.min())/(image.max() - image.min()) 
# Now scale to [-1, 1] 
newimage = newimage*2-1 
print(newimage.min(), newimage.max()) 

출력 : MinMaxScaler`는 각 열 변환을 적용`때문에 -1.0, 1.0

+0

위대한 작품 - 감사합니다! 이 솔루션은 매우 간단합니다. 나는 MinMaxScaler의 실패로부터 배울 수있는 교훈은 콘트라스트가 낮았 기 때문에 그러한 선형 스케일링이 충분하지 않다는 것이 었습니다. – kevinkayaks