poster
2019-12-14, 20:13
在MATLAB的图像处理工具箱中, (http://www.mathworks.com/products/image/)有一个improfile (http://www.mathworks.com/help/toolbox/images/ref/improfile.html)函数,该函数从由两个点定义的直线下方返回图像的强度分布。
是否有与此功能等效的文字 ?也就是说,我想传递两个点(以指定一条线)和一个像素值向量来替换该线下面的一堆像素。
回答:
我基本上完成了Ghaul的 (https://stackoverflow.com/users/426352/ghaul)建议,但是用手动查找基础像素替换了imline() 。优点是未显示可带来速度优势的数字(在我的测试中为〜0.5s);
dist_euc = norm(p1 - p2); n_pix = round(dist_euc*2); step = (p1 - p2)/n_pix; pix_coords = zeros(n_pix, 2); for cp = 0:n_pix pix_coords(cp+1, :) = round(p2 + cp*step); end pix_inds = sub2ind(size(im), pix_coords(:,2), pix_coords(:,1)); pix_inds = unique(pix_inds); im(pix_inds) = interpft(prof, length(pix_inds));
更多&回答... (https://stackoverflow.com/questions/4874298)
是否有与此功能等效的文字 ?也就是说,我想传递两个点(以指定一条线)和一个像素值向量来替换该线下面的一堆像素。
回答:
我基本上完成了Ghaul的 (https://stackoverflow.com/users/426352/ghaul)建议,但是用手动查找基础像素替换了imline() 。优点是未显示可带来速度优势的数字(在我的测试中为〜0.5s);
dist_euc = norm(p1 - p2); n_pix = round(dist_euc*2); step = (p1 - p2)/n_pix; pix_coords = zeros(n_pix, 2); for cp = 0:n_pix pix_coords(cp+1, :) = round(p2 + cp*step); end pix_inds = sub2ind(size(im), pix_coords(:,2), pix_coords(:,1)); pix_inds = unique(pix_inds); im(pix_inds) = interpft(prof, length(pix_inds));
更多&回答... (https://stackoverflow.com/questions/4874298)