Bitmap透視變換

2021-08-22 15:59:01 字數 2250 閱讀 6807

import flash.geom.*;

var photo:sprite=new sprite();

addchild(photo);

//img為繼承於bitmapdata的類

var bitmapsource = new img(400,300);

var showline = true;

var inbitmapwidth = 1/bitmapsource.width;

var inbitmapheight = 1/bitmapsource.height;

var bitmapwidth = bitmapsource.width;

var bitmapheight = bitmapsource.height;

//滑鼠按下時bitmap的變換距陣

var bitmapmtrx = new matrix();

var subbitmapmtix = new matrix();

//舞台寬度變數申明

var stwidth = 550;

var stheight = 400;

var ōx = stwidth/2;

var ōy = stheight/2;

//焦距

var focus = 80;

//攝影機角度變數

var angu = 0;

var angv = 0;

//細分段數

var subdiv = 5;

var subdivpic = subdiv*(subdiv-1);

var subdivvy = new array();

var subdivvx = new array();

var subdivvz = new array();

var subdivx = new array();

var subdivy = new array();

var subdivenable = new array();

var mtrx = new array();

var mtrx2 = new array();

//細分bitmap在map內部的x和y

var subdivmapx = new array();

var subdivmapy = new array();

var subdivwidth = bitmapsource.width/(subdiv-1);

var subdivheight = bitmapsource.height/(subdiv-1);

for (var i = 0; i> 1;

for (var i = 0; i=0.1)

//如果細分表面頂點有1個在螢幕內則渲染該麵片

if (_loc3>0) }}

}}function renderbitmap(bitmapno, point1x, point1y, point2x, point2y, point3x, point3y, subbitmapmtix)

this.photo.graphics.moveto(point1x,point1y);

this.photo.graphics.lineto(point2x,point2y);

this.photo.graphics.lineto(point3x,point3y);

this.photo.graphics.endfill();

}//初始渲染

photo.graphics.clear();

var cos_angu = math.cos(angu);

var sin_angu = math.sin(angu);

var cos_angv = math.cos(angv);

var sin_angv = math.sin(angv);

var dx;

var dy;

stage.addeventlistener(mouseevent.mouse_down,onmousedownhandler);

stage.addeventlistener(mouseevent.mouse_up,onmouseuphandler);

function onmousedownhandler(evt:mouseevent):void

function onenterframehandler(evt:event):void

}function onmouseuphandler(evt:mouseevent):void

render();

opencv透視變換

1 目前效果最好的乙個 但還是紙牌能檢測出來 2 下面將我修改執行成功的 貼出,至於優化,提高識別四邊形準確度,還需要繼續研究。透視變換,檢測四邊形,有時候容易檢測不出 但目前效果最好的就是該程式 include stdafx.h include core core.hpp include incl...

透視變換(高階)

透視變換比仿射變換更普遍。它們不一定保持線條之間的 平行性 但是因為它們更普遍,也更實用,幾乎所有在日常影象中遇到的變換都是透視變換。有沒有想過為什麼兩條軌道似乎在遠處會相遇?這是因為您的眼睛中的對影象好比做了透視變換,透視變換不一定保持平行線平行。如果你站在上面觀察圖1.1中的鐵軌,他們似乎根本不...

透視變換詳解

有一種與仿射變換經常混淆的變換為透視變換,透視變換需要四組點對才能確定變換矩陣,由於仿射變換保持 平直性 與 平行性 因此只需要三組點對,而透視變換沒有這種約束,故需要四組點對 warpperspective函式主要作用 對影象進行透視變換,就是變形 void warpperspective inp...