VIPS (및 Python)의 다양한 색조 범위의 16 비트 tiff 파일에 다양한 변환을 적용해야합니다. 나는 그럭저럭 그렇게 할 수 있었다. 그러나 나는 VIPS에 초보적이다. 그리고 나는 효율적인 방법으로 이것을하고있다라고 확신하지 않는다. 이 이미지는 각각 수백 메가 바이트이며, 초과 단계를 자르면 이미지 당 몇 초를 절약 할 수 있습니다.VIPS/Python에서 특정 색조 범위로 변환을 적용하는 방법
아래 코드에서 얻은 것과 동일한 결과를 얻는보다 효율적인 방법이 있는지 궁금합니다. 예를 들어 조회 테이블을 사용하는 경우 (실제로 VIPS에서 어떻게 작동하는지 알 수 없습니다). 이 코드는 빨간색 채널의 그림자를 분리하고 변환을 통해 전달합니다.
im = Vips.Image.new_from_file("test.tiff")
# Separate the red channel
band = im[0]
# Find the tone limit for the bottom 5%
lim = band.percent(5)
# Create a mask using the tone limit
mask = (band <= lim)
# Convert the mask to 16 bits
mask = mask.cast(band.BandFmt, shift = True)
# Run the transformation on the image and keep only the shadow areas
new_shadows = (65535 * (shadows/lim * 0.1)) & mask
각 색조 범위 (하이라이트, 그림자, 중간 톤, 내가 함께 원래 밴드 재구성하는 모든 결과 이미지를 추가하기위한 더 많거나 적은 유사한 코드를 실행 한 후 :
new_band = (new_shadows.add(new_highlights).add(new_midtones)).cast(band.BandFmt)
예, 당신은 꽤 빨리 그것을 만들 수 있어야합니다. 예를 들어, 각 밴드에 대해 한 번, 세 번 ('추측? ')'퍼센트 '를 실행 중입니다. 대신, 처음에 이미지의 히스토그램을 찾아 분석하여 각 밴드의 비율을 얻으십시오. 우리가 시도해 볼 수있는 작지만 완전한 예를 게시하십시오. 편집 : 당신이 말한대로 물론 또 다른 큰 스피드 업을 줄 수있는 LUT를 사용할 수 있습니다. – user894763