<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />我已将350 .jpeg图像读入JMP数据表,其中实际图像位于Expression列中。 然后我可以在表达式列中包含的图像上使用图像处理(例如John Ponte脚本)吗?
我喜欢直接从数据列中读取图像的想法,所以我只是修改了图像分析器并创造了图像列分析器 。它的工作方式与图像分析器类似,除了选择图像文件,您可以选择包含图像的数据表。您可以遍历图像并为所需的任何图像创建数据表。
我也打算给你一个脚本,它可以做同样的事情(更自动化,没有交互性),但它看起来像 vince.faller0 打败了我。
请享用!
如果你需要的只是每个图像的数据表而不是他的窗口的交互性。 这应该工作。
//编辑John Ponte的图像分析器
dt = 当前数据表 ();
nr = NROWS (DT);
image_col = 柱 (DT, “图片” );
对于 (I = 1 ,我<= nr,i ++,
img = image_col ;
{r,g,b} = img << 获取像素 ( “RGB” );
numRows = nrow (R);
numCols = 的NcoI (R);
//检查灰度图像
grayScale = 和 ( 所有 (R ==克),所有 (g == b));
如果 (灰度,
// r,g,b都是相同的,所以这就是强度。
//色调和坐标为0(无颜色),亮度与强度相同。
强度= r;
dt_Ref = 新表 ( “参考数据” ,
newColumn ( “X” ,设定值( 重复 ( 1 :: numCols,numRows))),
newColumn ( “Y” ,设定值( 形状 ( 重复 ( 1 :: numRows行,数numCols)`,数numCols,numRows行)))
newColumn ( “一世” ,设定值(强度)),
);
,
//将rgb转换为灰度(强度)矩阵
强度= 0.3 * r + 0.59 * g + 0.11 * B;
//将像素值作为JSL颜色获取,然后转换为色调,亮度和饱和度
// HLS颜色处于标准化颜色空间(0.0-1.0)
jslColors = img << 的getPixels ();
{h,l,s} = ColorToHLS (jslColors);
dt = 新表 ( “表” || 烧焦 (一世),
newColumn ( “X” ,设定值( 重复 ( 1 :: numCols,numRows))),
newColumn ( “Y” ,设定值( 形状 ( 重复 ( 1 :: numRows行,数numCols)`,数numCols,numRows行)))
newColumn ( “R” ,设定值(r)),
newColumn ( “G” ,设定值(g)),
newColumn ( “B” ,设定值(b)),
newColumn ( “一世” ,设定值(强度)),
newColumn ( “H” ,设定值(h * 360 )),
newColumn ( “L” ,设定值(l)),
newColumn ( “S” ,设定值(s)),
);
);
);
理想情况下,我想获得一个单独的数据表,其中包含Expression列中350个.jpeg图像中每个图像的RGB和HLS值。我找到了从文件夹和图像处理中读取多个.jpeg文件的脚本,但我无法让它工作。我能够使用Expression数据类型将350个图像读入一个JMP表,所以我想知道是否可以直接对该列中的图像进行图像处理。
是的,这些图像是Char to Blob(),括号之间有很多乱码。
在此先感谢您的帮助,
黑雁
你需要互动吗?expr()列应该只是char到blob()或其他东西(如果我没记错的话),所以所有信息都应该在那里。
如果您编辑John P的令人敬畏的图像分析器来选择一行(或逐列或某些行命名),它应该工作相同。如果您需要帮助,请告诉我。 我非常广泛地使用他的剧本。