Very impressive.. thanks
I got all the unknowns.
I was going to include more things in the "sovleeqn" but I get "limit error"
After getting unknowns (a-h) I have to transform them back to the image with
some formula.
I followed your outline to create "solveeqn"
solveeqn=: 4 : 0
...
... I'll skip the codes for getting unknowns (X=:Y%.A)
...
after that I create a set of grid points with the size of the image and get
the x and y grid points with:
grid=: 4.$.$.|.(1090 1376$1)
x_grid=:0 {"1 grid
y_grid=: 1 {"1 grid
and transform them with the following formula for new x,y:
x_new=: +/"1 ((x_grid,.y_grid,.1) *"1/ ((1 1 1 0 0 0 0 0)# X)) %
(+/"1 ((x_grid,.y_grid,.1) *"1/ ((0 0 0 0 0 0 1 1)# X),1))
y_new=: +/"1 ((x_grid,.y_grid,.1) *"1/ ((0 0 0 1 1 1 0 0)# X)) %
(+/"1 ((x_grid,.y_grid,.1) *"1/ ((0 0 0 0 0 0 1 1)# X),1))
x_new=: 1090 1376$x_new
y_new=: 1090 1376$y_new
and the result:
x_new,y_new
but I get "limit error".
now with this condition should I include loop for that or did I follow
stupid procedure to obtain x_new,y_new?
The actual formula for "x_new" and "y_new" is:
x_new = (a*x_grid + b*y_grid + c) / (g*x_grid + h*y_grid + 1)
y_new = (d*x_grid + e*y_grid + f) / (g*x_grid + h*y_grid + 1)
with "a,b,c,..,h" the unknowns in "X"
Henry Rich wrote:
>
> OK. I will outline a solution that you can fill in
>
> Given the table A:
>
> u1 v1 (x1 y1) ... repeated for many images
>
> 0. Create a verb 'solveeqn' that will solve one system, given
>
> x = 200x2 array of u v
> y = 2x200 array of x y
>
> 1. Create
> uv =. 2 {."1 A
> xy =. 2 }. |: A
>
> 2. Run
> _2 uv&solveeqn\ xy
>
> You will get all your answers
>
> Henry Rich
>
>
>
--
View this message in context:
http://old.nabble.com/make-equations-without-loop-tp34407576s24193p34410419.html
Sent from the J Programming mailing list archive at Nabble.com.
----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm