Matlab에서 알파 합성 기능을 에뮬레이션하거나보다 구체적인 작성 유형 CopyOpacity 및 ImageMagick에서 오버라이드하려고합니다. 첫 번째 목표는 (image set with aliasing edges) 세트의 이미지에서 검은 영역과 같이 큰 앨리어싱 가장자리가있는 영역을 가려내는 것입니다. 이 작업은 호환 가능한 그레이 스케일 마스크를 사용하여 수행해야하며 검은 색 영역은 제거되어야하고 흰색은 보존되어야합니다. gray scale mask을 참조하십시오. 중요한 것은 검은 색과 흰색 사이의 연속적인 전환이 투명과 불투명의 연속적인 전환이되는 것입니다 (screenshot with transparent regions) 참조).Matlab : 그레이 스케일 마스크를 사용한 알파 합성
그레이 스케일 마스크 CM_mask_blur_alpha를 사용하여 전경 FG와 배경 BF를 작성하는 두 가지 방법이 있지만 예상대로 결과가 나지 않았습니다 (순수 Matlab 절차에 대한 참조로 ImageMagick이있는 image set with post-processing 참조).
FG = uint8(CM_mask_blur_alpha .* FG + (1 - CM_mask_blur_alpha) .* BG);
2) 제 2 방식 : 그레이 스케일 마스크 예기치 이전 흑색 영역의 에지에서 허용되지 에일리어싱 효과를 초래 바이너리 마스크 (image set for first approach)으로 처리되는 최초 코드에서
1) 전경과 배경 사이의 가시 연속 전이가 발생할뿐만 잔류 FG (image set for second approach)에서 에일리어싱 효과가있다 :
FG = uint8(bsxfun(@times, CM_mask_blur_alpha, FG) + bsxfun(@times, (1 - CM_mask_blur_alpha), BG));
이 한 단계 방식은 그렇게 작동하지 않는 것으로 보인다 ImageMagick과 같이 투명도가있는 중간 이미지를 생성하는 흑색 영역을 마스킹하고 두 번째 단계는 배경 위에이 중간 이미지를 작성하는 것과 같은 2 단계 접근 방식을 찾고 있습니다. 부분적으로는 MATLAB: Applying transparent mask over an RGB image and blending with another과 같은 문제 설정이지만 그레이 스케일 마스크가 없으며 회색 마스크에서 파생 된 값으로 알파 채널 생성과 같은 솔루션 부분을 적용 할 수 없습니다.