和模板阴影有关的边缘检测
来源:互联网 发布:最新通达信软件 编辑:程序博客网 时间:2024/05/16 01:31
//这样写判断实在是太麻烦了 但用不了switch
//NEHE27 判断比较好
for (int i=0;i<11;i++){for (int j=i+1;j<12;j++){if ((VertexEqu(ver[3*i],ver[3*j])&&VertexEqu(ver[3*i+1],ver[3*j+1]))|| (VertexEqu(ver[3*i+1],ver[3*j])&&VertexEqu(ver[3*i],ver[3*j+1]))||(VertexEqu(ver[3*i],ver[3*j])&&VertexEqu(ver[3*i+1],ver[3*j+2]))||(VertexEqu(ver[3*i+1],ver[3*j])&&VertexEqu(ver[3*i],ver[3*j+2]))||(VertexEqu(ver[3*i],ver[3*j+1])&&VertexEqu(ver[3*i+1],ver[3*j+2]))||(VertexEqu(ver[3*i+1],ver[3*j+1])&&VertexEqu(ver[3*i],ver[3*j+2]))||(VertexEqu(ver[3*i],ver[3*j])&&VertexEqu(ver[3*i+2],ver[3*j+1]))||(VertexEqu(ver[3*i+2],ver[3*j])&&VertexEqu(ver[3*i],ver[3*j+1]))||(VertexEqu(ver[3*i],ver[3*j])&&VertexEqu(ver[3*i+2],ver[3*j+2]))||(VertexEqu(ver[3*i+2],ver[3*j])&&VertexEqu(ver[3*i],ver[3*j+2]))||(VertexEqu(ver[3*i],ver[3*j+1])&&VertexEqu(ver[3*i+2],ver[3*j+2]))||(VertexEqu(ver[3*i+2],ver[3*j+1])&&VertexEqu(ver[3*i],ver[3*j+2]))||(VertexEqu(ver[3*i+1],ver[3*j])&&VertexEqu(ver[3*i+2],ver[3*j+1]))||(VertexEqu(ver[3*i+2],ver[3*j])&&VertexEqu(ver[3*i+1],ver[3*j+1]))|| ///明明是与第五个三角形匹配的,(VertexEqu(ver[3*i+1],ver[3*j])&&VertexEqu(ver[3*i+2],ver[3*j+2]))||(VertexEqu(ver[3*i+2],ver[3*j])&&VertexEqu(ver[3*i+1],ver[3*j+2]))||(VertexEqu(ver[3*i+1],ver[3*j+1])&&VertexEqu(ver[3*i+2],ver[3*j+2]))||(VertexEqu(ver[3*i+2],ver[3*j+1])&&VertexEqu(ver[3*i+1],ver[3*j+2]))){ if (!plan_Index[i]._a){plan_Index[i]._a=j+1;if (plan_Index[j]._a==0){plan_Index[j]._a=i+1;}else if (plan_Index[j]._b==0){plan_Index[j]._b=i+1;}else if(plan_Index[j]._c==0){ plan_Index[j]._c=i+1;}}else if (!plan_Index[i]._b){plan_Index[i]._b=j+1;if (plan_Index[j]._a==0){plan_Index[j]._a=i+1;}else if (plan_Index[j]._b==0){plan_Index[j]._b=i+1;}else if(plan_Index[j]._c==0){plan_Index[j]._c=i+1;}}else if(!plan_Index[i]._c){plan_Index[i]._c=j+1;if (plan_Index[j]._a==0){plan_Index[j]._a=i+1;}else if (plan_Index[j]._b==0){plan_Index[j]._b=i+1;}else if(plan_Index[j]._c==0){plan_Index[j]._c=i+1;}}} // }}}CString str,str1,str2,str3;// for (int i=0;i<3;++i)// { str1.Format("%d",plan_Index[0]._a); str2.Format("%d",plan_Index[0]._b);str3.Format("%d",plan_Index[0]._c);str=str1+str2+str3;::MessageBox(0, str, 0, 0);// // }}
关键的是 求出每个三角形三边的临边三角形(的索引),这样 再用 灯光的位置连线 求出乘积小于0的点即是边缘点,
详细可参考 NEHE27课,
求临边三角形的话, 笨方法就是 两for循环,从头开始读,有点像冒泡。
不过自己在 判断边是否相等时候,用了 太多判断,例程上的判断好些
- 和模板阴影有关的边缘检测
- 有关opencv的学习(17)—形态学滤波器检测边缘和角点
- 上升边缘和下降边缘检测的代码
- 边缘检测:Canny边缘检测和sobel边缘检测比较
- MATLAB 图像的平滑和边缘检测
- 模板阴影和纹理阴影
- 图像处理中边缘检测和轮廓检测的区别
- 数字图像的边缘检测
- 边缘检测的判定
- 边缘检测的比较
- 边缘检测的输出
- 边缘检测的原理
- 二维码的边缘检测
- 图像的边缘检测
- opencv3的边缘检测
- 图像的边缘检测
- Sobel边缘检测和边缘细化
- Sobel边缘检测和边缘细化
- c++11简单介绍
- 迟来的毕业答辩再现
- 线性代数导论7——求解Ax=0:主变量、特解
- C# TXT文件导入至数据库
- 13年多校总结
- 和模板阴影有关的边缘检测
- C++中string 结束判断
- bb \w\h\u
- jquery实现原理:前言
- smali文件解析
- Linux学习之道:redhat9.0安装
- hdu 1792 A New Change Problem 剩余系
- 至情至性
- import javax.servlet 出错