Python 이미지 처리:2 차원 고 스 분포 몽 판 생 성 실례

이미지 처리 와 이미지 효과 에서 고 스 분포 의 몽 판 을 자주 사용 하 는데 몽 판 은 이미지 융합 을 할 수 있 고 서로 다른 내용 의 두 장의 이미 지 를 몽 판 과 결합 시 켜 서로 다른 예술 효 과 를 조성 할 수 있다.

여기 서 II 는 합 성 된 이미 지 를 나타 내 고 FF 는 전경 도 를 나타 내 며 BB 는 배경 도 를 나타 내 고 MM 은 몽 판 을 나타 내 거나 몽 판 으로 이미지 와 직접 곱 하여 그 라 데 이 션 매 핑 효 과 를 형성한다.아래 와 같다.

고 스 분포 몽 판 의 특성 을 소개 하고 Python 으로 이 루어 집 니 다.
가우스 분포 의 몽 판 은 쉽게 말 하면 중심 에서 확산 되 는 밝기 분포 도 이다.다음 과 같다.

밝기 의 범 위 는 1 에서 0 까지 이 고 중심 에서 가장자리 까지 점점 약해 집 니 다.중심의 밝기 가 가장 높 은 것 은 1 이 고 가장자리 의 밝기 가 가장 낮은 것 은 0 입 니 다.이미지 의 모든 밝기 값 은 다음 과 같 습 니 다.

그 중에서 i,ji,j 는 이미지 의 모든 점 의 좌 표를 나타 내 고 왼쪽 상단 을 좌표 원점 으로 하 며 dd 는 이미지 의 모든 점 에서 이미지 중심 점 까지 의 거 리 를 나타 내 고 RR 은 이미지 의 반지름 을 나타 낸다.그림 의 높이 가 HH 이 고 너비 가 WW 라 고 가정 합 니 다.

IMAGE_WIDTH = 512
IMAGE_HEIGHT = 392

center_x = IMAGE_WIDTH/2
center_y = IMAGE_HEIGHT/2

R = np.sqrt(center_x**2 + center_y**2)

Gauss_map = np.zeros((IMAGE_HEIGHT, IMAGE_WIDTH))

#    for      
for i in range(IMAGE_HEIGHT):
  for j in range(IMAGE_WIDTH):
    dis = np.sqrt((i-center_y)**2+(j-center_x)**2)
    Gauss_map[i, j] = np.exp(-0.5*dis/R)

#           

mask_x = np.matlib.repmat(center_x, IMAGE_HEIGHT, IMAGE_WIDTH)
mask_y = np.matlib.repmat(center_y, IMAGE_HEIGHT, IMAGE_WIDTH)

x1 = np.arange(IMAGE_WIDTH)
x_map = np.matlib.repmat(x1, IMAGE_HEIGHT, 1)

y1 = np.arange(IMAGE_HEIGHT)
y_map = np.matlib.repmat(y1, IMAGE_WIDTH, 1)
y_map = np.transpose(y_map)

Gauss_map = np.sqrt((x_map-mask_x)**2+(y_map-mask_y)**2)

Gauss_map = np.exp(-0.5*Gauss_map/R)

#           
plt.figure()
plt.imshow(Gauss_map, plt.cm.gray)
plt.imsave('out_2.jpg', Gauss_map, cmap=plt.cm.gray)
plt.show()
이상 의 Python 이미지 처리:2 차원 고 스 분포 몽 판 을 생 성 하 는 인 스 턴 스 는 바로 작은 편집 이 여러분 에 게 공유 하 는 모든 내용 입 니 다.여러분 께 참고 가 되 고 저 희 를 많이 사랑 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기