Find below a gizmo I've built with some matrix that I've found over the years. 

A good start for learning more about it.

Luc



Group {
 name Matrix_selector
 label "\[value matrix]"
 selected true
 xpos 16708
 ypos 22754
 addUserKnob {20 User l Matrix}
 addUserKnob {4 matrix M {"Horizontal Edges" "Vertical Edges" "Left Diagonal 
Edges" "Right Diagonal Edges" "Right Diagonal Edges" North West East South 
Northeast "Basic Smooth" "Basic Smooth 5x5" High-Pass "High-Pass 5x5" Laplacian 
"Laplacian 5x5"}}
}
 Input {
  inputs 0
  name Input1
  xpos 400
  ypos -179
 }
set N148564d0 [stack 0]
 Matrix {
  matrix {
      {1 1 1 1 1}
      {1 1 1 1 1}
      {1 1 24 1 1}
      {1 1 1 1 1}
      {1 1 1 1 1}
    }
  normalize true
  name Matrix16
  label "Laplacian 5x5"
  xpos 1280
  ypos 71
 }
push $N148564d0
 Matrix {
  matrix {
      {0 -1 0}
      {-1 4 -1}
      {0 -1 0}
    }
  name Matrix15
  label Laplacian
  xpos 1170
  ypos 71
 }
push $N148564d0
 Matrix {
  matrix {
      {0 -1 -1 -1 0}
      {-1 2 -4 2 -1}
      {-1 -4 13 -4 -1}
      {-1 2 -4 2 -1}
      {0 -1 -1 -1 0}
    }
  name Matrix14
  label "High-Pass 5x5"
  xpos 1060
  ypos 71
 }
push $N148564d0
 Matrix {
  matrix {
      {-1 -1 -1}
      {-1 9 -1}
      {-1 -1 -1}
    }
  name Matrix13
  label High-Pass
  xpos 950
  ypos 71
 }
push $N148564d0
 Matrix {
  matrix {
      {1 1 1 1 1}
      {1 4 4 4 1}
      {1 4 12 4 1}
      {1 4 4 4 1}
      {1 1 1 1 1}
    }
  name Matrix12
  label "Basic Smooth 5x5"
  xpos 840
  ypos 71
 }
push $N148564d0
 Matrix {
  matrix {
      {1 2 1}
      {2 4 2}
      {1 2 1}
    }
  normalize true
  name Matrix11
  label "Basic Smooth"
  xpos 730
  ypos 71
 }
push $N148564d0
 Matrix {
  matrix {
      {0 -1 -2}
      {1 0 -1}
      {2 1 0}
    }
  name Matrix10
  label Northeast
  xpos 620
  ypos 71
 }
push $N148564d0
 Matrix {
  matrix {
      {1 2 1}
      {0 0 0}
      {-1 -2 -1}
    }
  name Matrix9
  label South
  xpos 510
  ypos 71
 }
push $N148564d0
 Matrix {
  matrix {
      {1 0 -1}
      {2 0 -2}
      {1 0 -1}
    }
  name Matrix20
  label East
  xpos 400
  ypos 71
 }
push $N148564d0
 Matrix {
  matrix {
      {-1 0 1}
      {-2 0 2}
      {-1 0 1}
    }
  name Matrix7
  label West
  xpos 290
  ypos 71
 }
push $N148564d0
 Matrix {
  matrix {
      {-1 -2 -1}
      {0 0 0}
      {1 2 1}
    }
  name Matrix6
  label North
  xpos 180
  ypos 71
 }
push $N148564d0
 Matrix {
  matrix {
      {-1 -1 2}
      {-1 2 -1}
      {2 -1 -1}
    }
  name Matrix5
  label "Right Diagonal Edges"
  xpos 70
  ypos 71
 }
push $N148564d0
 Matrix {
  matrix {
      {-1 -1 2}
      {-1 2 -1}
      {2 -1 -1}
    }
  name Matrix8
  label "Right Diagonal Edges"
  xpos -40
  ypos 71
 }
push $N148564d0
 Matrix {
  matrix {
      {2 -1 -1}
      {-1 2 -1}
      {-1 -1 2}
    }
  name Matrix17
  label "Left Diagonal Edges"
  xpos -150
  ypos 71
 }
push $N148564d0
 Matrix {
  matrix {
      {-1 2 -1}
      {-1 2 -1}
      {-1 2 -1}
    }
  name Matrix18
  label "Vertical Edges"
  xpos -260
  ypos 71
 }
 Dot {
  name Dot1
  xpos -232
  ypos 156
 }
push $N148564d0
 Matrix {
  matrix {
      {-1 -1 -1}
      {2 2 2}
      {-1 -1 -1}
    }
  name Matrix19
  label "Horizontal Edges"
  xpos -370
  ypos 71
 }
 Dot {
  name Dot2
  xpos -342
  ypos 180
 }
 Switch {
  inputs 16
  which {{matrix}}
  name Switch1
  xpos 400
  ypos 277
 }
 Output {
  name Output1
  xpos 400
  ypos 349
 }
 Viewer {
  frame 1
  input_process false
  name Viewer1
  xpos 400
  ypos 469
 }
end_group








From: [email protected]
Subject: Re: [Nuke-users] Select horizontal and vertical lines
Date: Fri, 22 Apr 2011 09:14:50 -0700
To: [email protected]



Someone who understands the voodoo of the Matrix node! Awesome! 
I don't suppose you know how to do an edge detect at an arbitrary angle, 
instead of either horizontally or vertically?
On Apr 22, 2011, at 7:58 AM, Hugh Macdonald wrote:You can create your own 
vertical/horizontal edge detect by using the Matrix node to create a basic 
Sobel filter.
Create a Matrix node, and set it to be 3x3.
For a vertical edge detect, enter the following values:
[ -1   0   1 ][ -2   0   2 ][ -1   0   1 ]
For a horizontal edge detect, enter these values:
[ -1   -2   -1 ][  0    0     0 ][  1     2    1 ]
Then follow this with an Merge node set to Difference. Make sure the B input is 
plugged into the Matrix node, and leave the A input disconnected. This will 
make the negative values that came out of the Matrix node positive.

Hugh Macdonaldnvizible – VISUAL EFFECTS

[email protected]
+44(0) 207 659 2038
+44(0) 7773 764 708

www.nvizible.com


On 21 Apr 2011, at 14:12, Renato Carone wrote:Hi,
If you use a Erode node after your Edge Detect, you can select vertical or 
horizontal lines.
Cheers,Renato carone
On 21/04/2011, at 06:44, Spider <[email protected]> wrote:

Hi everyone,
I'd like to kow if there is a way to select only vertical and/or horizontal 
lines after an edge detect node, cause i'd like to apply a node only for these 
selection.Any hint ?


Thanks for your help.
Spider
-- 
Luddnel Spider Magne | Director - Lead Motion Compositor


555Lab – Alchemy between you and us 
24 rue du Pré St-Gervais 93500 Pantin 


Office (+33)148 453 555 | Fax (+33)171 864 387


Mobile (+33)699 434 555 | 555lab.com




_______________________________________________
Nuke-users mailing list
[email protected]
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users
_______________________________________________
Nuke-users mailing list
[email protected]
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users

_______________________________________________
Nuke-users mailing list
[email protected]
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users


_______________________________________________
Nuke-users mailing list
[email protected]
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users             
                          
_______________________________________________
Nuke-users mailing list
[email protected]
http://support.thefoundry.co.uk/cgi-bin/mailman/listinfo/nuke-users

Reply via email to