Tôi đang cố gắng áp dụng bộ lọc Sobel trên một hình ảnh để phát hiện các cạnh bằng cách sử dụng scipy. Tôi đang sử dụng Python 3.2 (64 bit) và scipy 0.9.0 trên Windows 7 Ultimate (64 bit). Mã hiện tại của tôi như sau:Áp dụng bộ lọc Sobel bằng cách sử dụng scipy
import scipy
from scipy import ndimage
im = scipy.misc.imread('bike.jpg')
processed = ndimage.sobel(im, 0)
scipy.misc.imsave('sobel.jpg', processed)
Tôi không biết mình đang làm gì sai, nhưng hình ảnh đã xử lý trông không giống bất cứ thứ gì. Hình ảnh, 'bike.jpg' là hình ảnh màu xám (chế độ 'L' không phải 'RGB') nên mỗi pixel chỉ có một giá trị được liên kết với nó.
Đáng tiếc là tôi không thể gửi những hình ảnh ở đây chưa (không có đủ uy tín) nhưng tôi đã cung cấp các liên kết dưới đây:
Hình ảnh Gốc (bike.jpg): http://s2.postimage.org/64q8w613j/bike.jpg
scipy lọc (sobel.jpg): http://s2.postimage.org/64qajpdlb/sobel.jpg
Output dự kiến: http://s1.postimage.org/5vexz7kdr/normal_sobel.jpg
tôi rõ ràng là đi sai omewhere! Ai đó có thể cho tôi biết ở đâu. Cảm ơn.
Vâng, tôi muốn đạo hàm trên 0 trục (dx). Tôi đang thực sự cố gắng để thực hiện các máy dò cạnh Canny và đã có vấn đề tính toán gradient bằng cách sử dụng các nhà khai thác Sobel. Cám ơn rất nhiều! Tôi cần thay đổi độ chính xác. – Feanor