0
다른 이미지 위에 투명도가있는 사각형에 이미지를 오버레이하는 함수를 작성하려고하지만 이미지를 레이어링하지 않습니다. 오버레이 및 투명도가 전체 이미지를 잘라냅니다. 여기 내 코드가있다.Java OpenCV Layer 작은 이미지 투명도가 더 큰 이미지에
public static void overlayImage(String imagePath, String overlayPath, int x, int y, int width, int height) {
Mat overlay = Imgcodecs.imread(overlayPath, Imgcodecs.IMREAD_UNCHANGED);
Mat image = Imgcodecs.imread(imagePath, Imgcodecs.IMREAD_UNCHANGED);
Rectangle rect = new Rectangle(x, y, width, height);
Imgproc.resize(overlay, overlay, rect.size());
Mat submat = image.submat(new Rect(rect.x, rect.y, overlay.cols(), overlay.rows()));
overlay.copyTo(submat);
Imgcodecs.imwrite(imagePath, image);
}
편집 : 여기에 몇 가지 예제 사진입니다 : 하기 전에 :
후 :
항상 이미지와 결과를 게시하십시오. – zindarod
@Zindarod 죄송합니다. – Jake
여기에서 문제는 복사 한 후 오버레이 이미지의 알파 채널이 대상 이미지의 알파 채널보다 우선합니다. – zindarod