Python 如何从视频中提取一行像素(roi),在单个.tif图像中合并行?
我是编程新手,我正在尝试使用ImageJ和Jython从视频中提取一行,并将这些行组合成时间序列。我正在尝试创建一个视频摄像机,即 我的尝试是这样的:Python 如何从视频中提取一行像素(roi),在单个.tif图像中合并行?,python,line,jython,imagej,roi,Python,Line,Jython,Imagej,Roi,我是编程新手,我正在尝试使用ImageJ和Jython从视频中提取一行,并将这些行组合成时间序列。我正在尝试创建一个视频摄像机,即 我的尝试是这样的: from ij import ImagePlus, IJ from ij.process import FloatProcessor img = IJ.getImage() roi = img.getRoi() StackSize = 100 #img.getImageStackSize() pixels = roi.getPixels
from ij import ImagePlus, IJ
from ij.process import FloatProcessor
img = IJ.getImage()
roi = img.getRoi()
StackSize = 100 #img.getImageStackSize()
pixels = roi.getPixels()
Length = len(pixels)
Width = 1
total_pixels = [[0] *len(pixels)] * StackSize
t_pixels = []
for j in range (1, StackSize):
img.setSlice (j)
roi = img.getRoi()
pixels = roi.getPixels()
for i in xrange (len(pixels)):
pixels [i] = pixels [i]
total_pixels[j-1] = pixels
fp = FloatProcessor (Length, StackSize,total_pixels)
imp = ImagePlus ("White Noise", fp)
imp.show()
然而,它返回:
TypeError:ij.process.FloatProcessor:3rd arg不能强制为double[],int[],float[]
关于如何解决这个问题的任何提示。我可能会迭代一个文本文件,附加pixels变量,但我不知道怎么做。
欢迎任何帮助。
顺便说一句,如果你想试试,你可以用斐济的蝇脑样本
非常感谢您得到的错误表明total_pixels不是double[]、int[]或float[]类型的数组,这是类的任何构造函数所需要的 在Python中构建Java数组的一个好方法是使用jarray,Java数组的Jython模块,如Fiji wiki文档中所述 我修改了您的代码,这也需要在for循环中进行一些修复: 从ij导入ImagePlus,ij 从ij.process导入FloatProcessor 从jarray导入零 img=IJ.getImage roi=img.getRoi stackSize=img.getImageStackSize 像素=roi.getPixels 长度=千像素 总像素=零长度*堆栈大小,“f” 对于X范围内的j,堆栈大小: img.setSlice j+1 roi=img.getRoi 像素=roi.getPixels 对于X范围长度中的i: 总像素[j*长度+i]=像素[i] fp=浮点处理器长度、堆栈大小、总像素 imp=图像加白噪声,fp 小鬼秀
FWIW,其他人使用ImageJ处理kymographs:您可以找到一个和一些非常感谢您修复脚本。也谢谢你的提示!!嗨,简,我正试图将kymograms的新图像保存到一个文件夹中,根据[使用:`imp=IJ.getImage fs=FileSaver imp folder=C:/Users/myfolder/Desktop/ImageJ_files filepath=folder+/+Videokymogram.tiff fs.saveAsTifffilepath'它会生成一个内部没有任何内容的空图像。是否可以修复它?再次感谢输入IJ.saveAstiffip,请查看路径。如果这不起作用,请打开一个新的问题此外,咨询通常会有所帮助,因为ImageJ专家读者比stackoverflow上的要多得多。