Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从视频中提取一行像素(roi),在单个.tif图像中合并行?_Python_Line_Jython_Imagej_Roi - Fatal编程技术网

Python 如何从视频中提取一行像素(roi),在单个.tif图像中合并行?

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

我是编程新手,我正在尝试使用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()
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上的要多得多。