[docs]defimage(adata:AnnData,imgpath:Path|str|None,library_id:str,quality:str="hires",scale:float=1.0,visium:bool=False,spot_diameter_fullres:float=50,copy:bool=False,)->AnnData|None:"""\ Adding image data to the Anndata object Parameters ---------- adata Annotated data matrix. imgpath Image path. library_id Identifier for the visium library. Can be modified when concatenating multiple adata objects. scale Set scale factor. quality Set quality that convert to stlearn to use. Store in anndata.obs['imagecol' & 'imagerow']. visium Is this anndata read from Visium platform or not. copy Return a copy instead of writing to adata. Returns ------- Depending on `copy`, returns or updates `adata` with the following fields. **tissue_img** : `adata.uns` field Array format of image, saving by Pillow package. """adata=adata.copy()ifcopyelseadataifimgpathisnotNoneandos.path.isfile(imgpath):try:img=plt.imread(imgpath,0)ifvisium:adata.uns["spatial"][library_id]["images"][quality]=imgelse:adata.uns["spatial"]={}adata.uns["spatial"][library_id]={}adata.uns["spatial"][library_id]["images"]={}adata.uns["spatial"][library_id]["images"][quality]=imgadata.uns["spatial"][library_id]["use_quality"]=qualityadata.uns["spatial"][library_id]["scalefactors"]={}adata.uns["spatial"][library_id]["scalefactors"]["tissue_"+quality+"_scalef"]=scaleadata.uns["spatial"][library_id]["scalefactors"]["spot_diameter_fullres"]=spot_diameter_fullresadata.obsm["spatial"]=adata.obs[["imagecol","imagerow"]].valuesadata.obs[["imagecol","imagerow"]]=adata.obsm["spatial"]*scaleprint("Added tissue image to the object!")except:raiseValueError(f"""\{imgpath!r} does not end on a valid extension. """)else:raiseValueError(f"""\{imgpath!r} does not end on a valid extension. """)returnadataifcopyelseNone