
Slice and plot scanlines in Nuke!
I’ve been playing with the expression node in Nuke lately, and one of the things I made was a simple Slice tool/scanline plotter. It can sample a slice (between two points) and will plot the color values as a curve over the image.
I’ve wrapped it up in a group with a set of exposed parameters, but not exported as a gizmo, just because it might be handy to just copy/pasta it into your scripts somewhere without the need to embed it into a pipeline.
It has three modes, per pixel which is checking the raw pixels, and a sample area which is similar to the per pixel method but it can sample a larger area pr pixel as well. (using the ex: r(x,y,5,5) function) and one that will use the first point to determine which full scanline to sample and plot.
Maybe someone will find it usefull, maybe someone will……….buy me a beer….
set cut_paste_input [stack 0]
version 6.1 v1
push $cut_paste_input
Group {
name PlotScanline
selected true
xpos -839
ypos 206
addUserKnob {20 Controls}
addUserKnob {4 mode l "Sampling method" M {"Slice Per Pixel (faster)" "Slice Area (slower)" "Full Scanline" "" "" ""}}
mode "Full Scanline"
addUserKnob {6 add2image l "Add to original" +STARTLINE}
add2image true
addUserKnob {6 Normalize -STARTLINE}
addUserKnob {6 tonemap l "Tone Map (HDRI)" -STARTLINE}
addUserKnob {6 curve l "Plot as curve" +STARTLINE}
curve true
addUserKnob {3 curveFat l "Curve Thickness" -STARTLINE}
addUserKnob {3 sa l "Sample Area" t "Disabled when using pr pixel method."}
sa 1
addUserKnob {7 lift l Lift R -1 1}
addUserKnob {7 scale l Scale R 0 5}
scale 1
addUserKnob {26 ""}
addUserKnob {12 p1 l "Start Point"}
p1 {376 418}
addUserKnob {12 p2 l "End Point" -STARTLINE}
p2 {428.5 425.5}
addUserKnob {26 ""}
addUserKnob {26 "" l "About " T "Plot Scanline v0.4 | theo@euqahuba.com\nUse P1 to select your scanline and/or you start slice."}
}
Input {
inputs 0
name Input1
xpos -480
ypos 62
}
set N3069610 [stack 0]
Expression {
temp_name0 length
temp_expr0 sqrt(r*r+g*g+b*b)
expr0 r/length
expr1 g/length
expr2 b/length
name Normalize
xpos -480
ypos 108
disable {{1-parent.Normalize i}}
}
Expression {
expr0 r/(r+1)
expr1 g/(g+1)
expr2 b/(b+1)
name tonamap
xpos -480
ypos 134
disable {{1-parent.tonemap i}}
}
set N7fe58a0 [stack 0]
Expression {
temp_name0 rExpr
temp_expr0 "min(max(0,\r\nceil(r(x,parent.p1.y)-((y/height+parent.lift)*parent.scale))),1)"
temp_name1 gExpr
temp_expr1 "min(max(0,\r\nceil(g(x,parent.p1.y)-((y/height+parent.lift)*parent.scale))),1)"
temp_name2 bExpr
temp_expr2 "min(max(0,\r\nceil(b(x,parent.p1.y)-((y/height+parent.lift)*parent.scale))),1)"
expr0 rExpr
expr1 gExpr
expr2 bExpr
expr3 0
name scanline
xpos -302
ypos 193
addUserKnob {20 User}
}
push $N7fe58a0
Expression {
temp_name0 rExpr
temp_expr0 "min(max(0,\r\nceil(r((x/width)*(parent.p2.x-parent.p1.x)+parent.p1.x,(x/width)*(parent.p2.y-parent.p1.y)+parent.p1.y,parent.sa,parent.sa)-((y/height+parent.lift)*parent.scale))),1)"
temp_name1 gExpr
temp_expr1 "min(max(0,\r\nceil(g((x/width)*(parent.p2.x-parent.p1.x)+parent.p1.x,(x/width)*(parent.p2.y-parent.p1.y)+parent.p1.y,parent.sa,parent.sa)-((y/height+parent.lift)*parent.scale))),1)"
temp_name2 bExpr
temp_expr2 "min(max(0,\r\nceil(b((x/width)*(parent.p2.x-parent.p1.x)+parent.p1.x,(x/width)*(parent.p2.y-parent.p1.y)+parent.p1.y,parent.sa,parent.sa)-((y/height+parent.lift)*parent.scale))),1)"
expr0 rExpr
expr1 gExpr
expr2 bExpr
expr3 0
name Expression_highQuality
xpos -515
ypos 197
addUserKnob {20 User}
}
push $N7fe58a0
Expression {
temp_name0 rExpr
temp_expr0 "min(max(0,\r\nceil(r((x/width)*(parent.p2.x-parent.p1.x)+parent.p1.x,(x/width)*(parent.p2.y-parent.p1.y)+parent.p1.y)-((y/height+parent.lift)*parent.scale))),1)"
temp_name1 gExpr
temp_expr1 "min(max(0,\r\nceil(g((x/width)*(parent.p2.x-parent.p1.x)+parent.p1.x,(x/width)*(parent.p2.y-parent.p1.y)+parent.p1.y)-((y/height+parent.lift)*parent.scale))),1)"
temp_name2 bExpr
temp_expr2 "min(max(0,\r\nceil(b((x/width)*(parent.p2.x-parent.p1.x)+parent.p1.x,(x/width)*(parent.p2.y-parent.p1.y)+parent.p1.y)-((y/height+parent.lift)*parent.scale))),1)"
expr0 rExpr
expr1 gExpr
expr2 bExpr
expr3 0
name perPixel
xpos -419
ypos 201
addUserKnob {20 User}
}
Switch {
inputs 3
which {{parent.mode i}}
name Switch2
xpos -480
ypos 253
}
Matrix {
matrix {
{0 1 0}
{1 -4 1}
{0 1 0}
}
name Matrix2
selected true
xpos -480
ypos 284
disable {{-1+parent.curve i x70 1}}
}
Dilate {
size {{parent.curveFat}}
name Dilate1
xpos -480
ypos 326
disable {{-1+parent.curve.main}}
}
Clamp {
name Clamp1
xpos -480
ypos 383
}
set N86e9e00 [stack 0]
push $N3069610
Dot {
name Dot1
xpos -556
ypos 66
}
Clamp {
maximum 331
name Clamp2
xpos -590
ypos 352
}
Merge2 {
inputs 2
operation plus
bbox intersection
name Merge1
xpos -590
ypos 394
}
Dot {
name Dot2
xpos -556
ypos 433
}
push $N86e9e00
Switch {
inputs 2
which {{parent.add2image i}}
name Switch1
xpos -480
ypos 425
}
Output {
name Output1
xpos -480
ypos 470
}
end_group
Updated the code with some minor fixes.
Sweet…this has saved my butt. One virtual beer is on its way! :)
Any chance there could be an option to have the actual RGB values on frame from the tool itself?
Very helpful. Thanks!
グレートstuff.Idはフライドポテトのアイデアの周りの多くを見てみ提案したいです。まさにあなたは、しかし探していますか?継続的に本当に更新の詳細の多くを含む投稿を
私は投稿のためにそれを感謝ウェブサイト
2015年モデル flo-1520set 【FLOW/フロー】スノーボード ビンディング 2点セット MICRON VERVE&MICRON YOUTH/STORMTROOPER キッズ ジュニア 日本正規品:SNB-SHOP http://www.resnaturalis.fr/shoponsel/8127.html
ねえ達人に加入LAMた問題は、あなたが記事を公開するかを誘惑します。このテキストは、特に、私が先週の木曜日このテーマにアイデアを探していたという事実のために、非常に魅力的にするために使用しました。とても素敵なポストを
コペット ハーブ&ピュア 全犬種用シャンプー 240ml 【COPET Shampoo(コペット シャンプ—)/犬用シャンプー/犬のシャンプー/いぬのシャンプー】【犬用品/ペット?ペットグッズ/ペット用品】:ペッツビレッジクロス~ペット通販 http://nybroforum.nu/catsaleml/5391.html
の書き込みに大きな努力を入れているようです!あなたがマスターしている..それが来るように、詳しく教えてください。
布団クリーナー 掃除機【Bejoy UVお布団クリーナー DSC-014】【10,800円~送料無料】【内祝い_お返し_結婚祝い_お誕生日_出産祝い】【父の日_お中元_ギフト】【楽ギフ_のし宛書】【結婚式_引き出物_香典返し】:レディース通販のソラーラ http://anurex.gr/shoponsel/6043.html
あなたなさそこにいくつかのまともなポイント。 問題問題ジレンマ私はそのためにインターネット上で見て、位置ほとんどの人を インターネットとに加えて行きますウェブサイト。ちょっと
◎テラノバ 43LU1?レーザーウルトラ1【世界最軽量テント】:登山用品とアウトドアのさかいや http://factorplant.co.uk/shoponsel/3359.html
おかげで、私はそれについて強く感じ、THIの多くを学んで楽しみますsの対象。達成可能な場合は、経験を積むように、あなたはより多くの詳細をあなたのブログを更新する気でしょうか?その私のために非常に便利。あなたはそれはとても素晴らしく、きちんとあなたのブログを維持するために仕事のかなり多くでなければならないです
adm-1417 【Admiral/アドミラル】スニーカー EVERTON 0834 Brown/Ivory SJAD1308 靴 シューズ メンズ レディース エバートン:SNB-SHOP http://yorkshireconsultants.com/shoponsel/8899.html
イムを得る私はこのブログを見つけました見つけ、私は問題の前に、このトピックの情報を学ぶcouldntの。私はまた、サイトを運営していて、あなたは、人々が自分のサイトをテストするためのイムは、常に表示され、可能な場合は私に知らせて自由に感じる私のために、ゲストの書き込みの少し中に、これまで深刻な場合です。立ち寄って、いつかコメントを残してください!
こんにちは、私はこのブログからの情報の一部を引用できますか?乾杯
+1))
。 I 必要いくつかのことを尋ねるために…このワードプレスである私たちはWPに渡って転送を考えているよう。また、あなたはすべて自分でこのテーマを作りましたの?乾杯。グーグルによって、および| ウェブログ
Salutのありスキッパーぶら下がっていますどのようにこのごろ#リンク#の
。私はちょうどあなたのサイトにつまずいたと私は実際にあなたのウェブサイトの記事を読んで楽しんでいることを言いたかったです。どのような方法は、私はあなたのフィードを購読することだろうと私はあなたがすぐに再度投稿したいと考えています。イムイライラうわー
ファンタスティック サイト。 たくさんの多大ここに| 情報情報 便利な。 私は さらにさらにさらに ANS美味しいで共有するいくつかの に送信します。と自然、あなたの努力をお願い致します!
お役立ちポイントがあなたのブログに書かれた、これはブックマーク価値があると思いますが、ほとんどは私がに同意します。私が投稿するになります同様のブログを見て思い出してください。私は
!あなたがリンクを交換することに興味があるだろうか?
。今後有用な情報を保管してください!
、私がつまずいこのアイブ氏は、それは絶対に役に立ったし、それは負荷を私を支援してきました。私は貢献&アンプしたいと考えています。お世話になったそのような他のユーザーを支援。素晴らしい仕事。ファンタスティックライトアップを
は、私はそれをブックマークして、いくつかのより多くの後にそれをチェックアウトするために戻ってくる..今日del.icio.usにあなたのサイトを発見し、本当にそれが好き..
このために探し。 実際にテイクをリフレッシュデータ。おかげたくさん。 コンテンツ素材コンテンツブログに と私は
単に あなたの記事のようにあると言う驚異。 | 単にあなたのポストで鮮明透明性がある 偉大と私は可能性 |この主題の専門家あなたがしているあなたがあると仮定します。 まあ今後のポストに| 更新日まで保つために| | フィードRSSフィード私はあなたをつかむためにあなたの許可を持つましょう許可。おかげで百万と追いつくに運ぶ 報酬仕事。あなたは私の心を読んで、そのような
を私は永遠にこの{サイトに新しい記事の更新をしたいと思います:
私は自分のサイトでこのようなものについて投稿する意味されているとあなたは私のアイデアを与えています。ありがとうございます。
私のサポートであなたの寛大さのための私の賞賛を伝えたいために支援懸念この特定とサポート。あなたの特定への献身発見メッセージすべて以上が素晴らしく生産されていたとしている|時間すべてのすべて なさ 専門家 はるか私のような彼らの夢を達成します。 個人貴重なチュートリアル手段は 優れた私には契約と加えて、 職場への労働者。ありがとう;私たちの から。あなたは{番号を完了し
いただきましたハプニング 私は有用|これに新しい、私はこのつまずい私がした |この絶対 参考に発見が見つかりました の負荷を私を支援|}、それは{支援してきました。 &| 寄与貢献を与えるに アシストヘルプ 他 ユーザーそのような|私を助けを支援。 グレート仕事。 {しばらく
私はブログに、多くの場合だと私は実際にはあなたを尊重します。作品は、実際にた私の興味をピーク。 情報 | コンテンツ素材コンテンツとブランドの新しいのチェックを保つ私はへのブックマークあなたのつもりです。
?私はすべてのブロガーが自分のブログにあまり注意を払ったいです。私はあなたのブログを見つけたうれしい
私がした読み出して多数のあなたの記事と私の非常に良い|優秀|素晴らしい|かなり良いと言うなければならない もの。私は確かにブックマークされますあなたのウェブサイト
そこにこんにちは、あなたの情報をありがとうございました – 私がした 間違いなく 適切な右ここから新しい何かを拾いました。インターネット|私はウェブをリロードする経験として、ウェブサイト 採用使用してこのそれにもかかわらず専門知識のいくつかの技術的な問題を私がやりました サイト私の前の時間の多くは、それが適切にロードするために得ることができます。 インターネットウェブホスティングOKであなたの場合、私は疑問に思っていましたか?私は文句を言っていたが、低迷ローディングインスタンス時間は、非常わけではないことをしばしばグーグルでの配置に影響し、広告やマーケティング場合は、AdWordsを使用して品質スコアを損傷する恐れがあります。 適切 私は私の電子メールにこのRSSを追加することができ、|のために見て表示されます 多くの もっとたくさんあなたのそれぞれのエキサイティングコンテンツの。状態誰かが基本的に深刻なポストI 作るために支援
に あなたを共有しました。 MSN | ウェブログあなた| 私が発見した私が見つかりました。 非常に きちんと書かれた記事。 私がします ことを確認してくださいブックマークにそれとリターンの学ぶ 余分あなた有用の情報。ポスト| おかげで、ありがとうございました。 カムバック | 確かに間違いなく | 私は意志私がよ。
ニースポスト。硬い異なるブログに毎日私はたくさんいくつかのことを学びます。他の作家から| コンテンツ素材コンテンツをとそれらの店で、特定のものを採用することは、常にあなたがちょうど読んで刺激されます。あなたが気にしないかどうかを| ウェブログ自分で| コンテンツ素材コンテンツ 採用私は、特定の適用することを選ぶだろう。 インターネットブログ| あなたの個人的な独自の上のリンクNatually私は供給与えるを提供ます。 いくつかのおかげで共有。言う
その優れたあなたの他の記事のように:D、転記のよろしく。
私は本当にyouveはあなたのサイト上で起こってしまったこのテーマをお楽しみください。ところで、テンプレートの名前は何ですか?私は私のクラスのプロジェクト用にビルドするつもりですウェブサイトのこのスタイルを使用して考えました。
するメイザーを扱う全くあらゆるローミングサービスを作るされていない有益な視点、ある。 を利用し私に加えて、任意の方法のおかげでまっすぐdeliciusにあなたの現在のポストを共有するための努力をしていたが、それは確かに明らかに問題の懸念でそれが可能であるあなたのウェブサイトをあなたがこれを再チェックする必要があります|あなたがするべき|あなたがする必要があります。 感謝の多く。
はあなた、あなたのブログサイトは、この素晴らしいを見せていた方法についていくつかのヒントを使用して、メッセージを私に、私は感謝するだろうでした!ちょうどあなたがここでの話をしたような
私は私のいとこによってこのブログを示唆されました。イムではない誰もが私の難しさについて、そのような詳細を知っているように、このポストは彼によって書かれているかどうかを確認してください。 Youreのは素晴らしいです!ありがとう!
!|。} ウェブサイト私は{いくつかを共有することのredditに行きを崇拝|うん
。 |アイブ氏はちょうど私の友人へのリンクを送りました。
栄光の栄光!栄光の栄光はgloryy gloryyy!マン団結ファンVS
私は完全に同意するが、ポイントは簡単より明確な方法で記述することができ、私が言っていたすべてのthats。いいえここでPROB仲間、イムそれについて、その緊張しません。
は、私はあなたが本当にこれで点に、私は同じページに完全に午前と言うことはできませんが、契約のその大きくはないと思います。