- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我有两张同一神经切口的照片,深度略有不同,每张切片使用不同的染料进行染色。我想叠加这两张图片,但它们在幻灯片/照片上没有完全对齐,因此无法简单地做到这一点。我想要做的是编写代码来检测两个切片之间的相似形状(即相同的单元格),然后根据这些单元格的位置叠加图片。有没有办法做到这一点?
我目前的代码是:
import matplotlib
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
import numpy as nb
from skimage import data, io, filters
import skimage.io
from PIL import Image
from scipy import misc
import numpy as np
from skimage.transform import resize
%matplotlib inline
picture1 = "Images/294_R_C3_5" # define your image pathway
i1 = Image.open(picture1 + ".jpg").convert('L') # open your first image and convert it to greyscale
i1 = i1.point(lambda p: p * 5) # brighten the image
region=i1.crop((600,0, 4000, 4000)) # crop the image
region.save(picture1 + ".png", "PNG") # save the cropped image as a PNG
i1 = matplotlib.image.imread(picture1 + ".png", format=None) # print the new cropped image
io.imshow(i1)
io.show()
I1 = Image.open(picture1 + ".png") # reopen your image using a different module
I1
picture2 = "Images/294_R_B3_6" #define your image pathway
i2 = Image.open(picture2 + ".jpg").convert('L') # open your second image and convert it to greyscale
i2 = i2.point(lambda p: p * 5)
region=i2.crop((600,0, 4000, 4000)) # crop the image
region.save(picture2 + ".png", "PNG") # save the cropped image as a PNG
i2 = matplotlib.image.imread(picture2 + ".png", format=None) # print the new cropped image
io.imshow(i2)
io.show()
I2 = Image.open(picture2 + ".png") # open your image using a different module
I2
我试过使用 skimage,但它似乎获得了太多的分数。另外,我不知道如何根据这些点堆叠图像。这是我的代码:
from skimage.feature import ORB
orb = ORB(n_keypoints=800, fast_threshold=0.05)
orb.detect_and_extract(i1)
keypoints1 = orb.keypoints
descriptors1 = orb.descriptors
orb.detect_and_extract(i2)
keypoints2 = orb.keypoints
descriptors2 = orb.descriptors
from skimage.feature import match_descriptors
matches12 = match_descriptors(descriptors1, descriptors2, cross_check=True)
from skimage.feature import plot_matches
fig, ax = plt.subplots(1, 1, figsize=(12, 12))
plot_matches(ax, i1, i2, keypoints1, keypoints2, matches12)
ax.axis('off');
然后我尝试稍微清理一下,但这删除了比我想要的更多的点:
from skimage.transform import ProjectiveTransform
from skimage.measure import ransac
src = keypoints1[matches12[:, 0]][:, ::-1]
dst = keypoints2[matches12[:, 1]][:, ::-1]
module_robust12, inliers12 = ransac((src, dst), ProjectiveTransform, min_samples=4, residual_threshold=1, max_trials=300)
fig, ax = plt.subplots(1, 1, figsize=(12, 12))
plot_matches(ax, i1, i2, keypoints1, keypoints2, matches12[inliers01])
ax.axis('off');
有什么想法吗?谢谢。
最佳答案
这种问题在计算机视觉中经常出现。自动完成与全景拼接完全相同的问题。你基本上需要做的是你几乎完成的事情:
我从未使用 skimage 进行特征提取/处理,但您的管道看起来不错。我还发现了这个可爱的(由 skimage 作者编写的)图像拼接指南,您会发现它非常有用! https://github.com/scikit-image/scikit-image-paper/blob/master/skimage/pano.txt
它基本上完成了您所做工作的一半,并完成了后续步骤!
关于python - 检测两张图片之间的相似点然后将它们叠加(Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35877193/
有人有 DirectDraw 叠加的工作示例(代码)吗?就像屏幕上移动的东西一样。我一直试图找到 DirectDraw 叠加用法的示例,但未能找到。 谢谢。 最佳答案 尝试其中一些: from gam
我在 JPanel 中显示缩略图。当将鼠标悬停在此类缩略图上时,我想在缩略图上方的叠加层中显示其完整版本。 使用 HTML,我只需创建一个具有适当位置和高 z-index 的 div,以便它覆盖其他所
好的,所以我想做一个覆盖屏幕。 因此,每当按键为 p 时,屏幕就会暂停并弹出一个屏幕,显示:“按‘q’退出或按‘c’继续,”类似的事情。 谁能告诉我怎么做? 最佳答案 最简单的方法是使用子模块,然后为
查看我的代码: id mapped! DisplayName (user defined) mapped! Pr
我想为 QListWidget 或 QWidget 等小部件分配背景图像。这是想法: 理想情况下,背景图像会在其小部件大小发生变化时调整大小。有什么想法如何实现它吗? 稍后编辑: 这是对话的屏幕截图,
我正在尝试设置一个授权方案,我在其中检查 1. 用户已登录 2. 用户有权访问某个对象。为此,我首先调用 maybeAuthId ,然后尝试获取当前对象,并“加入”到另一个列出权限的表。有两个级别的可
我想绘制两个系列的十个 fiddle 图,一个超过第二个: library(ggplot2) #generate some data coco1<-rnorm(10000,0,1) coco2<-c(
有谁知道如何触发在网格加载时显示的股票 jqGrid“正在加载...”叠加层?我知道我可以毫不费力地使用 jquery 插件,但我希望能够使我的应用程序的外观与 jqGrid 中已经使用的外观保持一致
我正在尝试在我的谷歌地图上实现“负”覆盖,类似于您在estately.com上获得的效果。基本上,我已经根据收集的 KML 数据成功绘制了 map 多边形。当有多个路径时,它们绘制得很好。 因此,对我
您好,我正在制作一个 Android 应用程序,它使用地理位置/Google map ,除了选项卡主机之外, map /应用程序上没有任何按钮。所以我需要它,所以如果用户点击 1500 毫秒,就会出现
我正在尝试叠加两个不同的 map ,但我无法叠加它们,并且我不知道如何解决此问题。 let bottom_left = ol.proj.fromLonLat([5.00975294202035
jquery 不是最好的,有人可以建议一个通用的方法来实现我想要实现的目标吗?我有一个照片网格,当它们被点击时,一个不透明的覆盖层将在整个图片之上动画化,覆盖层将包含一些动态设置的文本。我有图像和 o
我想问一下如何为我的 android 应用程序添加不同的叠加层?因为我已经有一个扩展 Overlay 的覆盖类,它根据 KML 文件中的某些点绘制多段线。现在我想创建另一个叠加层,使用 GPS 在用户
我目前正在使用谷歌地图并且是新手..我想知道是否可以将 map 划分为具有确定高度和宽度的某些 tiles 并为它们 color ..如果是,那么有人可以解释如何去做因为我面临困难。 最佳答案 我认为
我有一个用于在我的 MapView 上绘制路径的叠加层,但我注意到它每秒被不必要地重绘大约十次。由于在 draw 方法中我绘制了路径的每一段,这很容易成为效率问题。 出于这个原因,我决定缓存叠加层的内
我是 AR 的新手。但我对我想做什么有一个大概的想法。 我想在 Android 中将 UI 元素叠加在相机输入之上。 这些 UI 元素将根据陀螺仪、gps 输入、通过蓝牙、wifi 等实时更新。 类似
我有一个带有 .xib 的 UICollectionViewCell。 这是 xib 文件的结构 您可以看到同一级别的每个元素以及 3 个 ImageView 和一个按钮。但在运行时,这些元素前面有一
我有一个关于在哪里存储 map 覆盖的大图像的问题。 图片约100MB,不能缩小或在线存储(要求)。我一直在考虑使用 Assets 目录(xcassets),但它似乎适用于在不同设备上需要调整大小的图
我的应用程序的 css 覆盖了 SmartGWT 中的一些样式并真正降低其性能。 如果我使用 css 文件运行我的应用程序,它太慢了,我什至无法将鼠标悬停在 ListGrid 小部件上。但是,如果我取
我正在制作一个网页,但遇到了问题。当屏幕为 980 像素或更小时,菜单会自行隐藏,屏幕上会出现类似“汉堡包”的按钮菜单。当您单击该按钮时,一个 div 会占据整个屏幕并显示菜单(效果很好)。但是,当您
我是一名优秀的程序员,十分优秀!