2013-01-07 35 views
5

Khi tôi vẽ một bản vá có độ trong suốt < 1 trên hình ảnh được tạo bằng imagesc (Matlab R2012a), tôi nhận được một thứ trông giống như "lables đánh dấu" hoặc số trên hình dọc theo trục. Mã sau đây tái tạo sự cố:sử dụng giá trị minh bạch trên hình ảnh

imagesc(rand(10,20)) 
hold on 
patch([5 5 15 15],[3 7 7 3],'r','facealpha',.5) 

Đây có phải là lỗi hoặc có cách nào để thực hiện đúng không?

CHỈNH SỬA Số sẽ biến mất nếu tôi đặt set(gca,'xtick',[],'ytick',[]), vì vậy nó thực sự là liên quan đến đánh dấu. Dĩ nhiên tôi thích có ve trên con số của tôi.

imagesc with numbers on it

+1

Tôi vừa thử vào 2012b và điều đó không xảy ra. Điều này cũng xảy ra sau khi bạn làm một khởi đầu mới của MATLAB? Tôi đoán rằng bạn có một số trục cũ gây ra vấn đề. –

+0

Nó vẫn xảy ra sau khi khởi động lại, và cho con số mới. –

+0

Nếu bạn thay đổi trình kết xuất thành 'zbuffer', sự cố vẫn xảy ra? tức là 'set (gcf, 'renderer', 'zbuffer')' – Jonas

Trả lời

2

Loại tạo tác đồ họa này thường liên quan đến trình kết xuất đồ họa. Đặc biệt, trình kết xuất OpenGL dường như làm hỏng một số kết hợp phát hành Matlab, card đồ họa và hệ điều hành.

Cách giải quyết giữa các ý kiến ​​để change the renderer from OpenGL to zBuffer in the figure properties, mà là đạt được thông qua lệnh

set(gcf,'renderer','zbuffer') 

Thật không may, OpenGL là renderer duy nhất hỗ trợ minh bạch, vì vậy giải pháp này sẽ không làm việc cho bạn.

Là một workaround thay thế có thể, bạn có thể chuyển đổi từ phần cứng đến phần mềm OpenGL renderer qua lệnh

opengl software 

Kiểm tra help on opengl để tìm hiểu làm thế nào để thiết lập này trong trường hợp bạn đang ở trong một môi trường * nix .

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