CFSDN nhấn mạnh vào giá trị tạo ra nguồn mở và chúng tôi cam kết xây dựng nền tảng chia sẻ tài nguyên để mọi nhân viên CNTT có thể tìm thấy thế giới tuyệt vời của bạn tại đây.
Bài viết blog CFSDN này Xử lý ảnh Python: các ví dụ về tạo mặt nạ phân phối Gaussian hai chiều được tác giả sưu tầm và biên soạn. Nếu bạn quan tâm đến bài viết này thì nhớ like nhé.
Trong xử lý hình ảnh và các hiệu ứng đặc biệt của hình ảnh, mặt nạ phân phối Gaussian thường được sử dụng để kết hợp hai hình ảnh có nội dung khác nhau với mặt nạ có thể tạo ra các hiệu ứng nghệ thuật khác nhau.

Ở đây II đại diện cho hình ảnh tổng hợp, FF đại diện cho hình ảnh nền trước, BB đại diện cho hình nền và MM đại diện cho mặt nạ hoặc mặt nạ được nhân trực tiếp với hình ảnh để tạo thành hiệu ứng ánh xạ gradient. Như hình dưới đây.

Ở đây chúng tôi giới thiệu các đặc điểm của mặt nạ phân phối Gaussian và triển khai nó bằng Python.
Nói một cách đơn giản, mặt nạ phân bố Gaussian là bản đồ phân bố độ sáng trải rộng từ trung tâm, như minh họa bên dưới:

Độ sáng dao động từ 1 đến 0, giảm dần từ tâm đến rìa. Giá trị độ sáng cao nhất ở trung tâm là 1 và giá trị độ sáng thấp nhất ở rìa là 0. Giá trị độ sáng của bất kỳ điểm nào trên ảnh là.

Trong đó, i, ji, j đại diện cho tọa độ của bất kỳ điểm nào trên ảnh, với góc trên bên trái là gốc tọa độ, dd đại diện cho khoảng cách từ bất kỳ điểm nào trên ảnh đến điểm trung tâm của ảnh và RR đại diện cho bán kính của hình ảnh. Giả sử chiều cao của hình ảnh là HH và chiều rộng là WW.

- CHIỀU RỘNG CỦA ẢNH = 512
- CHIỀU CAO CỦA ẢNH = 392
-
- trung tâm_x = CHIỀU RỘNG CỦA ẢNH/2
- trung tâm_y = CHIỀU CAO CỦA ẢNH/2
-
- R = ví dụ..vuông(trung tâm_x**2 + trung tâm_y**2)
-
- Bản đồ Gauss = ví dụ..số không((CHIỀU CAO CỦA ẢNH, CHIỀU RỘNG CỦA ẢNH))
-
- # Triển khai bằng vòng lặp for
- vì Tôi TRONG phạm vi(CHIỀU CAO CỦA ẢNH):
- vì j TRONG phạm vi(CHIỀU RỘNG CỦA ẢNH):
- không = ví dụ..vuông((Tôi-trung tâm_y)**2+(j-trung tâm_x)**2)
- Bản đồ Gauss[Tôi, j] = ví dụ..kinh nghiệm(-0,5*không/R)
-
- # Triển khai trực tiếp bằng các phép toán ma trận
-
- mặt nạ_x = ví dụ..matlib.thay thế(trung tâm_x, CHIỀU CAO CỦA ẢNH, CHIỀU RỘNG CỦA ẢNH)
- mặt nạ_y = ví dụ..matlib.thay thế(trung tâm_y, CHIỀU CAO CỦA ẢNH, CHIỀU RỘNG CỦA ẢNH)
-
- x1 = ví dụ..sắp xếp(CHIỀU RỘNG CỦA ẢNH)
- x_bản_đồ = ví dụ..matlib.thay thế(x1, CHIỀU CAO CỦA ẢNH, 1)
-
- y1 = ví dụ..sắp xếp(CHIỀU CAO CỦA ẢNH)
- y_map = ví dụ..matlib.thay thế(y1, CHIỀU RỘNG CỦA ẢNH, 1)
- y_map = ví dụ..chuyển vị(y_map)
-
- Bản đồ Gauss = ví dụ..vuông((x_bản_đồ-mặt nạ_x)**2+(y_map-mặt nạ_y)**2)
-
- Bản đồ Gauss = ví dụ..kinh nghiệm(-0,5*Bản đồ Gauss/R)
-
- # Hiển thị và lưu hình ảnh được tạo
- số nhiều.nhân vật()
- số nhiều.imshow(Bản đồ Gauss, số nhiều.cm.xám)
- số nhiều.lưu lại('out_2.jpg', Bản đồ Gauss, bản đồ=số nhiều.cm.xám)
- số nhiều.trình diễn()
Bài viết trên Python Image Treatment: Một ví dụ về tạo mặt nạ phân phối Gaussian hai chiều là toàn bộ nội dung được biên tập viên chia sẻ, hy vọng có thể cho các bạn tham khảo và mong các bạn ủng hộ chúng tôi.
Liên kết gốc: https://blog.csdn.net/matrix_space/article/details/57942262.
Cuối cùng, bài viết này về xử lý ảnh Python: một ví dụ về tạo mặt nạ phân phối Gaussian hai chiều có ở đây. Nếu bạn muốn biết thêm về xử lý ảnh Python: một ví dụ về tạo mặt nạ phân phối Gaussian hai chiều, vui lòng tìm kiếm các bài viết của CFSDN. hoặc tiếp tục duyệt các bài viết liên quan, tôi hy vọng bạn sẽ ủng hộ blog của tôi trong tương lai! .
Tôi là một lập trình viên xuất sắc, rất giỏi!