이미 주어진 곡선이있는 경우 코드를 사용하여 데이터에 가깝게 복원 할 수 있습니다.
알려진 데이터의 수와 데이터의 최대 값 및 최소값 설정
인공 지능 기능이있는 것 같습니다.
전문가 감사합니다!

나는 대답을 제안하기 시작하기 위해 질문에 대해 충분히 이해하지 못한다는 것을 인정해야 할 것입니다. 곡선이 비트 맵 페인팅 (.png 파일)이라면 JMP가 그것을 읽으려고 시도하는 것이 옳다는 것을 상상할 수 없습니다. 일종의 광학 스캐닝 및 인식 소프트웨어를 찾고 있습니까?
곡선은 어떤 형식입니까? 빨간색 곡선을 읽으려고하거나 그림 하단에있는 숫자 텍스트를 읽으려고합니까?
아마도 JMP가 할 수 없다고 주장함으로써 내가 알지 못하는 JMP에 대한 몇 가지 기능을 배우려고합니다.
그건 그렇고, 픽셀에 대한 평균화에 신경 쓰지 않고 (여기 그래프의 선은 각 열에서 몇 픽셀 두께 임) 근사치를 찾고 있다면 처리 (이 특정 예에서는) 데이터 테이블이 훨씬 빠르고 복잡하지 않습니다. 보시다시피 그래프는 기본적으로 동일합니다.
</CODE></P>
<PRE><CODE class=" language-jsl">names default to here(1);
New Window( "Example",
pb = Picture Box( Open( "/Users/homer.simpson@jmp.com/Downloads/graphPic.png", png ) )
);
pixMat = (pb << get image) << get pixels;
pixMat = pixMat[20 :: 265, 15 :: N Col( pixMat )];
nc = N Col( pixMat );
x = (1 :: nc)`;
y = J( nc, 1, . );
For( i = 1, i <= nc, i++,
y[i] = Loc Min( pixMat[0, i] )
);
y = nrow( pixMat ) - y; //"flip" y-vals to account for screen coordinate convention.
dt = As Table( x || y, <<COLUMN names=""></COLUMN>
</CODE></P>
<P> </P></LINGO-BODY><LINGO-SUB id="lingo-sub-382962" slang="en-US">Re: JSL이 곡선의 값을 복원할 수 있습니까?</LINGO-SUB><LINGO-BODY id="lingo-body-382962" slang="en-US"><P>이것은 항상 쉽지는 않지만 그래프에 따라 가능할 수도 있습니다. 제공한 그래프에 대해 이 작업을 수행하는 한 가지 방법이 있습니다. 이미지 처리에 대한 배경 지식이 없기 때문에 더 효율적인 방법이 있을 수 있습니다.</P>
<P> </P>
<P>아이디어는 이미지의 픽셀 값을 얻고 배경과 그래프의 차이점에 초점을 맞추는 것입니다. 이 경우 그래프 색상은 픽셀 열에서 최소값이었습니다. 다른 경우에는 일종의 대역통과 필터 등을 파생해야 할 수도 있습니다. 여러 색상의 배경에서 그래프의 색상이 배경의 색상 중 하나와 같은 경우 이 접근 방식도 작동하지 않을 수 있습니다. 어쨌든 이것을 시도하십시오.</P>
<P> </P>
<P>이것은 조잡한 접근 방식이지만 출발점을 제공해야 합니다. 데이터를 정리/평활화하는 것은 사실 이후에 그렇게 어렵지 않습니다. 다른 사람들도 접근 방식과 성능을 개선할 수 있는 많은 방법을 찾을 것이라고 확신합니다.</P>
<P> </P>
<P>참고: x와 y의 크기를 조정하지 않았습니다. 다시 말하지만, 일단 그래프의 데이터까지 행렬을 가져오면 그렇게 하는 것은 어렵지 않습니다.</P>
<P> </P>
<P>내가 사용한 것과 동일한 파일을 사용할 수 있도록 .png를 첨부했습니다.</P>
<P> </P>
<P><SPAN class="lia-inline-image-display-wrapper lia-image-align-inline" image-alt="brady_brady_0-1620328935156.png" style="width: 999px;"><IMG src="https://us.v-cdn.net/6038925/uploads/images/32659i25847C5EFC991944/brady_brady_0-1620328935156.png" role="button" title="brady_brady_0-1620328935156.png" alt="brady_brady_0-1620328935156.png" /></SPAN></P>
<P> </P>
<P> </P>
<P> </P>
<P> </P>
<P>건배,</P>
<P>브래디</P>
<PRE><CODE class=" language-jsl">
Names Default To Here( 1 );
//need to save image and put the file path in the open() function.
New Window( "Example", pb = Picture Box( Open( "/Users/brady.brady@jmp.com/Downloads/graphPic.png", png ) ) );
img = pb << get image;
pixMat = img << get pixels;
pixMat = 1000*(floor(pixMat/1000)); //smooths values; use whatever factor you like
dt = astable(pixmat);
eval(substitute (
expr(dt << new column("Row", formula( _ROW_ - :row()))), //low rows for pixels are high. This is a fix for that.
expr(_ROW_),
nrow(dt)
));
dt:row << Delete Formula;
dt << move selected columns({"Row"}, to first);
dt << select where (:row() <= 20 | :row() >= 265) << Delete Rows; // top and bottom few rows of this table are not useful
stackCols = (dt << get column names)[14::ncol(dt)];
dtStack = dt << Stack(
columns( stackCols ),
Source Label Column( "Label" ),
Stacked Data Column( "Data" ),
"Non-stacked columns"n( Keep( :Row ) )
);
dtStack << select where (:data == col minimum(:data, :label)); //in this case, minimum color is the graph.
dtSub = dtStack << subset(selected rows(1), selected columns (0));
dtSub << new column("x", formula(num(substitute(:label, "Col", ""))));
summarize(dtSub, b = by(:label), yVals = mean(:Row), xVals = mean(:x));
astable(xvals || yvals, <<COLUMN names=""></COLUMN>