32 通道填边
来源:互联网 发布:网络成瘾临床诊断标准 编辑:程序博客网 时间:2024/05/19 22:03
此函数是上一篇的改进,生成32通道的填边,可以直接替换上一篇的这两个函数//填边宽 1 + maxModelX//填边高 1 + maxModelYint outCell(float * NL18, float * LB, float * des, int srcW, int srcH, int maxModelX, int maxModelY){ int desW = srcW - 2; int desH = srcH - 2; int outW = srcW + 2 * maxModelX; int outH = srcH + 2 * maxModelY; int offsetX = maxModelX + 1; int offsetY = maxModelY + 1; int lBx = 0; int lBy = 0; int LbW = srcW - 1; int LbH = srcH - 1; int i,j,k; int srcIndex; float temp; float Plb1, Plb2, Plb3, Plb4; float Tpl1, Tpl2, Tpl3, Tpl4; float sumPlb1, sumPlb2, sumPlb3, sumPlb4; for(i = 0; i < outH; i ++) { for(j = 0; j < outW; j ++) { if(i < offsetY || j < offsetX || i >= offsetY + desH || j >= offsetX + desW) { for(k = 0; k < 31; k ++) { des[(i * outW + j) * 32 + k] = 0.0f; } des[(i * outW + j) * 32 + 31] = 1.0f; }else { sumPlb1 = 0.0f; sumPlb2 = 0.0f; sumPlb3 = 0.0f; sumPlb4 = 0.0f; srcIndex = ((i + 1 - offsetY) * srcW + (j + 1 - offsetX)) * 18; lBx = j - offsetX; lBy = i - offsetY; for(k = 0; k < 18; k ++) { Plb1 = min(NL18[srcIndex + k] * LB[lBy * LbW + lBx], 0.2f); Plb2 = min(NL18[srcIndex + k] * LB[(lBy) * LbW + lBx + 1], 0.2f); Plb3 = min(NL18[srcIndex + k] * LB[(lBy + 1) * LbW + lBx], 0.2f); Plb4 = min(NL18[srcIndex + k] * LB[(lBy + 1) * LbW + lBx + 1], 0.2f); des[(i * outW + j) * 32 + k] = (Plb1 + Plb2 + Plb3 + Plb4) * 0.5f; sumPlb1 += Plb1; sumPlb2 += Plb2; sumPlb3 += Plb3; sumPlb4 += Plb4; } for(k = 0; k < 9; k ++) { temp = NL18[srcIndex + k] + NL18[srcIndex + k + 9]; Tpl1 = min(temp * LB[lBy * LbW + lBx], 0.2f); Tpl2 = min(temp * LB[(lBy) * LbW + lBx + 1], 0.2f); Tpl3 = min(temp * LB[(lBy + 1) * LbW + lBx], 0.2f); Tpl4 = min(temp * LB[(lBy + 1) * LbW + lBx + 1], 0.2f); des[(i * outW + j) * 32 + 18 + k] = (Tpl1 + Tpl2 + Tpl3 + Tpl4) * 0.5f; } des[(i * outW + j) * 32 + 27] = sumPlb1 * 0.2357f; des[(i * outW + j) * 32 + 28] = sumPlb2 * 0.2357f; des[(i * outW + j) * 32 + 29] = sumPlb3 * 0.2357f; des[(i * outW + j) * 32 + 30] = sumPlb4 * 0.2357f; des[(i * outW + j) * 32 + 31] = 0.0f; } } } return 0;}int ImageOutCell(float * src, float * des, int width, int height, int maxModelX, int maxModelY){ float * NL; float * L; float *LB; float * NL18; int sbin = 4; int cellW = round((float)width / 4); int cellH = round((float)height / 4); NL = (float *)malloc(width * height * sizeof(float) * 2); NL18 = (float *)malloc(cellW * cellH * sizeof(float) * 18); getNL(src, NL, width, height); nlTo18(NL, NL18, width, height, cellW, cellH, sbin); //计算L模长 L = (float *)malloc(cellW * cellH * sizeof(float)); LB = (float *)malloc((cellW - 1) * (cellH - 1) * sizeof(float)); countL(NL18, L, cellW, cellH); // 计算block countLB(L, LB, cellW, cellH, cellW - 1, cellH - 1); outCell(NL18, LB, des, cellW, cellH, maxModelX, maxModelY); free(NL); free(NL18); free(L); free(LB); return 0;}
0 0
- 32 通道填边
- 通道
- 通道
- 通道
- 通道
- 虚拟通道句柄不能忘记填值,否则服务端收到数据后用一个非法的句柄将报错
- 《WCF技术内幕》翻译32:第2部分_第6章_通道:通道状态机
- 位深度讲解,opencv8位单通道和32位单通道解析
- stm32DMA通道 ADC通道
- 通道和文件通道
- 填数
- 乱填
- 填数
- 填坑~
- 填报表
- 填表格
- 填算式
- 填算式
- 归并排序
- spring中props,list,set,map元素的用法
- 基于Websocket的实时数据看板
- 正则判断身份证,电话号码,邮箱等格式是否正确
- 字节流复制文件
- 32 通道填边
- Android NDK环境搭建
- 强连通Tarjan NYOJ 120 校园网络
- HDU1005 Number Sequence
- 基于FPGA的三相SPWM的设计及其优化
- 深入理解计算机系统--->计算机硬件系统
- 内存一致性中的release consistency
- java正则表达式
- 可变参数[JDK 5新特性]