核心算法,是用 的那个 cordic 算法..

http://www.cnblogs.com/signal/archive/2012/11/13/2768140.html

这里主要是想把算法弄到FPGA中去写的测试代码...

这里主要是贴关键代码:

void CTestImgDlg::OnImageCordic()
{
// TODO: Add your control notification handler code here
DWORD dwStart = GetTickCount();

int i;
int j;

for (i=0; i<m_HeightSW; i++)
{
for (j=0; j<m_WidthSW; j++)
{
// j = m_WidthSW/2;
int posX = i;
int posY = j;

BYTE val = this->GetImageCordic(posX,posY);    --开始转换 
m_pDataSW[i*m_WidthSW + j] = val;

}
}

CString str;
str.Format(" %d ", GetTickCount() - dwStart);
this->SetWindowText(str);

this->Invalidate();
}

#define MOV_POS_X (-256)     //坐标变幻值
#define MOV_POS_Y (86)

#define US_IMG_W (81)          // 原始图像的大小
#define US_IMG_H (256)

#define ANG_UNIT (60.0/(US_IMG_W - 1)) // 图像横像素所占角度
#define LEN_UNIT ((512 - 1 - 20)/(US_IMG_H*1.0)) // 图像坚像素所占长度

BYTE CTestImgDlg::GetImageCordic(int i, int j)
{
BYTE val = m_pDataSW[i*m_WidthSW + j];

// 直角坐标位置改变
double posX = i + MOV_POS_Y;
double posY = j + MOV_POS_X;

// posX = 300;
// posY = 300;
// 转为极坐标

double len;
double ang;
// cordic_int(i,j,len,ang);
cordic_double(posX,posY,len,ang);

// 换算为直角坐标的坐标
// double posX;
// double posY;

posX = ang/ANG_UNIT;
posY = len/LEN_UNIT;

posX = posX + US_IMG_W/2;
posY = posY - 56;

//最近邻的必要.........
// posX += 0.5;
// posY += 0.5;

// 没有落在图像上,则为黑色
if (posX < 0.0 || posX > US_IMG_W )
{
return 0;
}
if (posY < 0.0 || posY > US_IMG_H )
{
return 0;
}

// 下面是像素的计算--用的是简化计算, 把一个像素的落点分为8*8的可能区域,

//  如果要求更高,可以区分更细,而且不占什么时间,  不过我想没必要

int pointX = posX;
int pointY = posY;

//落点所在的区域
int X_c0 = (posX - pointX)*8;
int X_c1 = (posY - pointY)*8;

//取出四个点
int val00 = m_pDataUS[pointY * m_WidthUS + pointX];
int val01 = m_pDataUS[pointY * m_WidthUS + pointX + 1];
int val10 = m_pDataUS[(pointY+1) * m_WidthUS + pointX];
int val11 = m_pDataUS[(pointY+1) * m_WidthUS + pointX + 1];

//计算值--先求横向,再求纵向
int v1 = val00 + ((val01 - val00)>>3)*X_c0;
int v2 = val10 + ((val11 - val10)>>3)*X_c0;
val = v1 + ((v2 - v1)>>3)*X_c1;

// val = posY;
// 计算图像数值

return val;
}

转载于:https://www.cnblogs.com/signal/p/4019251.html

图像转换 之 方形图转化扇形图相关推荐

  1. 小小数据统计(柱状图、折线图、扇形图)

    代码地址如下: http://www.demodashi.com/demo/12012.html 大数据(big data),指无法在一定时间范围内用常规软件工具进行捕捉.管理和处理的数据集合,是需要 ...

  2. Chart图表整合——面积对比图、扇形图、柱状图

    一. chart图表demo网址 网址:http://antv.alipay.com/zh-cn/f2/3.x/demo/index.html 二. 本文主要对面积对比图,扇形图,柱状图三大常见图进行 ...

  3. 多波束前视声呐的矩形图转扇形图

    # -*- coding: utf-8 -*- """ Created on Fri Apr 1 16:18:44 2022 @author: WJJ "&qu ...

  4. 【Echarts 绘制柱状图、折线图和扇形图】

    1. 柱状图和折线图 柱状图和折线图的基本内容完全一致,只需要将option中的series的type: 'bar' 修改type: 'line',就可以将柱状图转化为折线图. initEchart( ...

  5. Excel高级图表制作③——漏斗图/转化路径图

    Excel图表系列(文末有大礼赠送): Excel高级图表①--电池图/KPI完成情况对比图 Excel高级图表②--帕累托图 Excel高级图表④-超级好用的Bullet图(KPI考核图) Exce ...

  6. android 第三方扇形图,Android扇形图(饼状图)

    关于Android的图形控件,市场上是有很多的开源库的 我个人用的比较多的就是:MPAndroidChart,个人感觉挺好用的,但是有写时候,满足不了需求,就需要自己去写了. 先看看我们的效果图: T ...

  7. ios 扇形 按钮_iOS 饼状图(扇形图)动画效果的实现

    先上效果图: 23.gif Demo在此,休得撒野!!!! 1.怎么用 /** * Pie * * @param frame frame * @param dataItems 数据源,此Demo是红. ...

  8. ppt扇形图怎么显示数据_ppt如何制作扇形图 ppt如何画扇形统计图-泡泡糖办公

    扇形图是我们工作中最常用到的数据图表之一: 多用于表示部分占总体的比例情况,从上图中可以看出,扇形图非常专一. 既然是比例,一般就会用到百分比,所以在扇形图的标签中存在转化成百分比形式的这一项.也就是 ...

  9. Matplotlib之扇形图绘制

    1 扇形图介绍 扇形图用整个圆表示总数,用圆内各个扇形的大小表示各部分数量占总数的百分数. 2 扇形图绘制 扇形图通过pie()函数绘制 plt.pie(x, explode=None, labels ...

最新文章

  1. MetaQ Log4j及服务器配置管理
  2. 道路交通安全违法行为记分管理办法的重大调整(2022版)
  3. Nginx编译安装和平滑升级
  4. godaddy ssl_免费在线Linux培训,GoDaddy切换到OpenStack等
  5. ReactNative(三)——WebStorm的基本配置
  6. php得到第一个数组_php怎么获取数组第一个元素
  7. 网络人工智能研究方向有哪些?
  8. python导入requests库_windows环境中python导入requests
  9. 【面试经验】关于BERT,面试官们都怎么问
  10. C语言多线程基础-02-临界区,互斥量
  11. 计算机主机报警 声,电脑开机报警声音大全
  12. 苹果自带相册打马赛克_原来手机点击这个按钮,就能一键生成音乐电子相册!这也太厉害了...
  13. 咽炎引发-----喉源性咳嗽(摘)
  14. 2022-2023寒假
  15. Windows2012的VPN服务与测试
  16. 万年历编写(从公元元年算起 考虑儒略历与格里历的变换)
  17. ASM 函数参数处理
  18. docker中mysql数据库闪退的原因
  19. iPhone X用户需要知道的12个隐藏小技巧 条条实用
  20. 【前端知识体系】浏览器

热门文章

  1. VUE 笔记(持续更新中...)
  2. java B2B2C springmvc mybatis多租户电子商城系统(五):熔断监控Hystrix Dashboard和Turbine...
  3. Linux中利用grep命令如何检索文件内容详解
  4. Python——阶段总结(一)
  5. 【面试虐菜】—— JAVA面试题(2)
  6. X-UA-Compatible也无法解决的IE11兼容问题
  7. zabbix企业应用之固定端口监控redis
  8. java部署web service的方式
  9. Spring-Cloud 从0开始(二) Eureka-Client
  10. CSS选择器学习小结