2011-10-14 34 views
28

Có thể tăng tính khử răng cưa trong matplotlib không? Tôi vẫn có thể thấy một số bí danh trong dữ liệu của mình, tôi đã thử một số phụ trợ và nó vẫn còn ở đó. Cờ antialiasing của các dòng được thiết lập.thay đổi cường độ khử răng cưa trong matplotlib

đây bạn có thể thấy những gì tôi có nghĩa là

enter image description here

Đó là một mẫu lấy từ một ảnh chụp màn hình. Nó có lẽ không phải là ví dụ tốt nhất nhưng tôi đoán người ta có thể thấy cầu thang trong dòng. Nó được chụp với phần phụ trợ wxagg.

Tôi đang sử dụng phiên bản 1.01 matplotlib với Windows 7.

Cập nhật: Tôi không có mã mà tạo ra hình ảnh trước đó nữa, nhưng tôi vẫn còn có vấn đề. Dưới đây là một ví dụ mã đơn giản hiển thị bí danh.

import numpy as np 
import matplotlib 
matplotlib.use('wxAgg') 
import matplotlib.pyplot as pl 
print 'Backend:', pl.get_backend() 

x = np.linspace(0,6,100) 
y = np.sin(x) 

for a in range(10): 
    pl.plot(x, a/10.*x, linewidth=1) 

pl.show() 

In của nó Backend: WXAgg Và kết quả sẽ giống như sau. aliasing

Đặc biệt là đường cong màu đỏ phía dưới cho thấy răng cưa rõ ràng.

+6

làm cho âm mưu của bạn ở kích thước pixel cao hơn và giảm tỷ lệ với thuật toán chất lượng cao. –

+0

nhưng về phiên tương tác thì sao? – P3trus

+0

Bạn đang đề cập đến các ô hình ảnh với 'imshow'? Nếu vậy, điều đó không liên quan gì đến việc chống răng cưa, đó chỉ là thuật toán nội suy được sử dụng bởi 'imshow'. (Nó nội suy mảng màu 3 dải, thay vì dữ liệu gốc, có thể dẫn đến nhiều hiện vật.) –

Trả lời

4

Hình ảnh bạn thêm vào câu hỏi của mình đã hoàn toàn được chống răng cưa. Nó không nhận được bất kỳ tốt hơn này. Hãy nhìn vào một phiên bản thu nhỏ của hình ảnh:

Upscaled version of the image in question

+1

Bạn chính xác rằng điều này là tốt chống răng cưa, nhưng tôi không chắc chắn tôi sẽ đi xa như "hoàn hảo". Có rất nhiều yếu tố đi vào một thuật toán chống bí danh tốt. –

+0

1. Nó dường như không có số lượng giới hạn các sắc thái (ví dụ như hiển thị Phông chữ của Windows) 2. Không có hiện vật có thể nhìn thấy. 3. Dựng hình phụ không phải là một tùy chọn cho những thứ màu đỏ. 4. Chiều rộng của một khoảng pixel ở mỗi hàng được xác định bởi chiều rộng đường kẻ, vì vậy thuật toán không thể thay đổi. Tôi thực sự không biết làm thế nào điều này có thể được cải thiện trong bất kỳ cách nào. Bạn có thấy một cách? – Simon

+0

Tôi thậm chí không đề cập đến kết xuất hình ảnh phụ. Bạn đã đưa ra một yếu tố, số lượng sắc thái, được xác định bởi số lượng supersampling được áp dụng. Tôi có thể nghĩ về những người khác: hình dạng và kích thước của bộ lọc, tuyến tính của không gian màu. –

4

Nếu bạn lưu hình ảnh dưới dạng file .svg, bạn sẽ có độ chính xác vô hạn. Sau đó, bạn có thể chỉnh sửa .svg này bằng thứ gì đó như InkScape và nhận được độ chính xác/khử răng cưa theo ý muốn.

+0

Có, xuất sang 'svg -> inkscape -> xuất sang png ở 5x dpi -> GIMP -> [làm mờ một chút? ->] tỷ lệ thành 20% -> xuất sang png lại'. Hoàn toàn loại bỏ các đường màu trắng giữa các đa giác lân cận cho tôi. – naught101

Các vấn đề liên quan