必看!超级图像变形算法

本文分享了一段展示强大算法功能的视频,特别强调了其中的图像拉伸和人物去除效果,建议Adobe将其整合到Photoshop中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

今天 TC 上的文章,不知道各位都有没有耐心将这段视频看完,如果您没看的话这次不要错过了。一定要把这段视频看完,你一定会非常惊讶,真是好强的算法!

我尤其喜欢其中的拉伸和去除人物那两种“变换”,感觉真的很神奇。Adobe 赶快去买掉这个算法,把它做成 Filter 放入 Photoshop 吧。

(英文听力不好的朋友可以直接忽略英文解说,只看就足够了)


istef&itemLink=http%3A%2F%2Fblog.istef.info%2F2007%2F08%2F28%2Fcool-image-resize-method%2F&itemDate=2007-08-28+00%3A19%3A06&itemTitle=%E5%BF%85%E7%9C%8B%EF%BC%81%E8%B6%85%E7%BA%A7%E5%9B%BE%E5%83%8F%E5%8F%98%E5%BD%A2%E7%AE%97%E6%B3%95

istef?i=7mHs67

istef?i=f5NnG1wQ istef?i=BUqwtpI8 istef?i=MIF0RiL7 istef?i=tLvi2mx3 istef?i=f4ENg7UG istef?i=UVnMAcV7 istef?i=MVou8SYo
148853000
基于移动最小二乘的图像变形技术 / Warp.h: interface for the CWarp class. // ////////////////////////////////////////////////////////////////////// #include <vector> #include <math.h> #include <cv.h> #include <highgui.h> #include <sstream> struct matrix2 { double c11,c12,c21,c22; }; class CWarp { protected: std::vector<CvPoint2D32f> m_CtrPs,m_CtrQs; public: CWarp(); virtual CvPoint2D32f Warping(const CvPoint2D32f& point)=0; virtual ~CWarp(); }; class CMLS: public CWarp { protected: void init(const CvPoint2D32f& point, CvPoint2D32f& PStar, CvPoint2D32f& QStar, std::vector<double>& Weight, std::vector<CvPoint2D32f>& PHat, std::vector<CvPoint2D32f>& QHat); CvPoint2D32f affine_warp(const CvPoint2D32f& point); CvPoint2D32f similar_warp(const CvPoint2D32f& point); CvPoint2D32f rigid_warp(const CvPoint2D32f& point); public: enum WARP_MODE {AFFINE, SIMILAR, RIGID}; CMLS(); CMLS(const std::vector<CvPoint2D32f>& CtrPs, const std::vector<CvPoint2D32f>& CtrQs); virtual CvPoint2D32f Warping(const CvPoint2D32f& point); CvPoint2D32f Warping(const CvPoint2D32f& point, WARP_MODE mode); }; class CTPS: public CWarp { public: CTPS(); CTPS(const std::vector<CvPoint2D32f>& CtrPs, const std::vector<CvPoint2D32f>& CtrQs); virtual CvPoint2D32f Warping(const CvPoint2D32f& point); private: std::vector<double> m_TPSCoeffX; std::vector<double> m_TPSCoeffY; }; class CAFFINE: public CWarp { public: CAFFINE(); ~CAFFINE(); CAFFINE(const std::vector<CvPoint2D32f>& CtrPs, const std::vector<CvPoint2D32f>& CtrQs); virtual CvPoint2D32f Warping(const CvPoint2D32f& point); const CvMat* GetMat() { return m_pAffine_m2n3; } std::string txt() const { std::ostringstream o; o << "Affine matrix: \n"; for (int i=0; i<2; i++) { for (int j=0; j<3; j++) o << " " << cvmGet(m_pAffine_m2n3, i, j); o << "\n"; } return o.str(); } private: CvMat* m_pAffine_m2n3; };
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值