当前位置: 首页>>代码示例>>Python>>正文


Python Rectangle.x0方法代码示例

本文整理汇总了Python中matplotlib.patches.Rectangle.x0方法的典型用法代码示例。如果您正苦于以下问题:Python Rectangle.x0方法的具体用法?Python Rectangle.x0怎么用?Python Rectangle.x0使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在matplotlib.patches.Rectangle的用法示例。


在下文中一共展示了Rectangle.x0方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。

示例1: align_img

# 需要导入模块: from matplotlib.patches import Rectangle [as 别名]
# 或者: from matplotlib.patches.Rectangle import x0 [as 别名]
def align_img(img_one, img_two, method = 'imgreg', show=False, roi=True, sb_filtering=False, filt_size= 200,
              binning=2, feducial=1, manualxy = None, **kwargs):
    '''
    Function to align images or holograms using X-correlation
    Parameters
    ----------
    img_one : ndarray
        The refrence image
    img_two : ndarray
        An image to align
    method : string
        Either 'imgreg' to use image registartion from skimage,
        or 'xcorr' to use crosscorrelation in real space from scipy,
        or 'feducial' to use feducial markers,
        or 'manual' to displace the images manually
#        or 'gui_shift' to shift image intractively
    show : boolean or string
        Set True to plot the results, set 'diff' to show difference of the images
    roi : boolean
        Set true to do alignament on ROI instead of whole image
    sb_filtering : boolean
        Set True, to apply for holograms
    filt_size : int
        Size of the filter for main band filtering
        used only for alignment of holograms
    binning : int
        Binning for the images during alignment used in 'xcorr' method
    feducial : int
        Number of feducial markers for 'feducial' method
    manualxy : tuple of 2 int
        Coordiantes x,y for manual alignment

    Returns
    -------
    img_algn : ndarray
        Aligned image img_two
    (xdrift, ydrift): tuple
        drift correction coordinates

    Notes
    -----
    * Manual alignamnt method requiers cooridnates provided using 'manualxy' parameter
    * X-correlation method is slow! Use only small images and small ROI (use of binning is recomended)
    * Binning is implemented for "xcorr" method only

    See Also
    --------

    '''

    (ry,cx) = img_one.shape
#    img_one = img_one.astype(float)
#    img_two = img_two.astype(float)

    # --- IFFT main band:
    if sb_filtering:
        fft_img_one = fftshift(fft2(img_one))
        (xx,yy) = np.meshgrid(np.linspace(-ry/2, ry/2-1, ry), np.linspace(-cx/2, cx/2-1, cx))
        rr = np.sqrt(xx**2+yy**2)
        mask = np.zeros((ry,cx))
        mask[rr<filt_size] = 1
        img_one_m = np.absolute(ifft2(ifftshift(fft_img_one*mask)))
        # --- Processing second image
        fft_img_two = fftshift(fft2(img_two))
        img_two_m = np.absolute(ifft2(ifftshift(fft_img_two*mask)))
    else:
        img_one_m = img_one
        img_two_m = img_two

    # --- Use ROI if True
    if roi:
        # --- GUI based assignment of ROI
        f, ax = plt.subplots(1, 1)
        ax.imshow(img_one_m, cmap=cm.binary_r)
        rect = utils.RoiRect()
        if hasattr(f.canvas.manager, 'window'): f.canvas.manager.window.raise_()
        plt.waitforbuttonpress(100)
        plt.waitforbuttonpress(5)
        plt.close(f)
    else:
        rect = Rectangle((0,0), 1, 1,fc='none', ec='r')
        rect.x0 = 0
        rect.y0 = 0
        rect.y1 = ry-1
        rect.x1 = cx-1

    # --- Select allignment method
    if method is 'imgreg':

        img_one_roi = img_one_m[rect.y0:rect.y1, rect.x0:rect.x1]
        img_two_roi = img_two_m[rect.y0:rect.y1, rect.x0:rect.x1]

#        px_rescale_y = np.float(img_one_m.shape[0])/np.float(img_one_roi.shape[0])
#        px_rescale_x = np.float(img_one_m.shape[1])/np.float(img_one_roi.shape[1])
        upsample = 4
        # --- Upsampled image registration for ROI
        shift, error, diffphase = register_translation(img_one_roi, img_two_roi, upsample)

        ydrift = shift[0]
        xdrift = shift[1]
#.........这里部分代码省略.........
开发者ID:ERCpy,项目名称:ercpy,代码行数:103,代码来源:mtools.py


注:本文中的matplotlib.patches.Rectangle.x0方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。