初学图像处理编程,做了 一个Hough变换的程序,现在提取出了计数数组的最大值,我采用的是极坐标,提取出来的
maxT(角度),maxS(极半径)。要是想画直线的话,有什么方法了?我采用的是极坐标方程,对图像是符合极坐标方程的点让其颜色改变,但是好像有点不对,请问我的方法有错误吗?或者有其他的方法了?
急盼佳音!!
for (x = 0; x < image->width; x++)
{
for ( int y = 0; y < image->height; y++)
{
int SS = (int)(x * cos(MaxT) + y * sin(MaxT) );
if (fabs(SS - MaxS) < 0.0001)
{
pdc->SetPixel(x, y, RGB(255, 0, 0));
}
else
pdc->SetPixel( x, y, RGB(r, g, b));
}
}
解决方案 »
- 关于模版类数组初始化问题??
- 对文件里信息的快速查找
- gdi
- 紧急求助!”拒绝从网络访问本计算机“下删除guest帐户
- **************求求求 十六进制数据转十进制函数 高分送上,急需中*******
- ***********************MFC领域中最热的技术是什么*****************************来聊聊*********
- 请问怎么画直线?
- 用MSFlexGrid怎么得到被选中的row(如果选择了多行)
- 大家早上好,如何找出程序所用到的dll文件?谢谢,悬赏500分,后再加。
- CFile类read函数每次按指定的字节数读取,能否read一行?
- hough求助
- 提问一个简单的二级指针问题。
int SS = (int)(x * cos(MaxT) + y * sin(MaxT) );
这一行里面的x * cos(MaxT)和y * sin(MaxT) 这两个值没有什么意义
如果你想要某一点的xy坐标符合长度与角度的要求,你就应该这样
先判断该与原点(比如屏幕左上方)的夹角
float(x-x0)/float(y-y0)=tan(MaxT);
然后在判断极半径
ss=sqrt((x-x0)*(x-x0)+(y-y0)*(y-y0));
这样角度和半径就都求出来了,然后根据条件判断
c=a/(b+0.00001)就可以了