关于RGB和IHS相互转换出现的错误
void RGB_HIS(IplImage *img,CvMat *H,CvMat *I,CvMat *S)//RGB转换到IHS中,得到的结果保存到H、I、S中
{
if(img->nChannels!=3)
return ;
int i,j;
for(j=0;j<img->height;j++)
for(i=0;i<img->width;i++)
{
double b=CV_IMAGE_ELEM(img,uchar,j,i*3)/255.0;
double g=CV_IMAGE_ELEM(img,uchar,j,i*3+1)/255.0;
double r=CV_IMAGE_ELEM(img,uchar,j,i*3+2)/255.0;
double rgb=min(min(r,g),b);
cvmSet(I,j,i,(r+b+g)/3.0);//将I分量存储
cvmSet(S,j,i,(1.0-3*rgb/(r+g+b+0.0000001)));//防止分母为0
double m=(2*r-b-g)/(2*sqrt((r-g)*(r-g)+(r-b)*(g-b))+0.0000001);
double thi=acos(m);
if(g>=b)
cvmSet(H,j,i,thi);
else
cvmSet(H,j,i,(2*PI-thi));
}
}
IplImage *HIS_RGB(int width,int height,CvMat *H,CvMat *I,CvMat *S)//IHS转换到RGB中,返回一张图片
{
IplImage *img=cvCreateImage(cvSize(width,height),IPL_DEPTH_8U,3);
int k,j;
for(j=0;j<img->height;j++)
for(k=0;k<img->width;k++)
{
double r,g,b;
double i=cvmGet(I,j,k);
double h=cvmGet(H,j,k);
double s=cvmGet(S,j,k);
if( h>=0 && h<(2.0/3.0*PI))
{
b=i*(1-s);
r=i*(1+s*cos(h)/cos(PI/3.0-h));
g=3*i-b-r;
}
else if (h>=(2.0/3.0*PI) && h<(4.0/3.0*PI))
{
r=i*(1-s);
g=i*(1+s*cos(h-2*PI/3.0)/cos(PI-h));
b=3*i-g-r;
}
else if (h>=(4.0/3.0*PI) && h<=2*PI)
{
g=i*(1-s);
b=i*(1+s*cos(h-4.0*PI/3.0)/cos(5.0*PI/3.0-h));
r=3*i-b-g;
}
else
{
b=g=r=1.0;
}
CV_IMAGE_ELEM(img,uchar,j,k*3)=(b>=0 && b<=1 ? (int)b*255:255);
CV_IMAGE_ELEM(img,uchar,j,k*3+1)=(g>=0 && g<=1 ? (int)g*255:255);
CV_IMAGE_ELEM(img,uchar,j,k*3+2)=(r>=0 && r<=1 ? (int)r*255:255);
}
return img;
}
不知道哪里出现了错误,一张照片经过正逆计算,得到的图片大部分区域是黑色的。大家帮忙看看是哪里出错了。
相关推荐
【信息科学与工程学】信息科学领域——第一百三十三篇 半导体器件物理与电子封装10
。编号类型领域问题(锚定尺度)逐步推理思考的数学方程式(多工具角度)及组合约束方程式关联知识1069设计工艺数据中心GPUNVIDIA Rubin GPU的Tensor Core中FP8(E4M3格式)训练的前向传播量化误差分析(每通道缩放, 相对误差<0.1%)几何学:FP8格式E4M3:1符号,4指数,3尾数,动态范围[-448,448],精度约6.25%。每通道缩放(per-channel scaling)适应不同通道的权重分布。前向传播量化误差来源于输入激活和权重的量化。 信息论:FP8 SQ
通信行业基于MongoDB的安全合规与性能优化:5G时序数据处理、可查询加密及窗口函数应用
内容概要:本文围绕MongoDB在通信行业的深度应用,系统讲解了可查询加密、时间序列集合、窗口函数与性能诊断四大核心技术。通过详实的代码案例,展示了如何利用可查询加密实现敏感数据合规存储与查询,使用时序集合高效处理5G网络KPI等高频写入场景,借助窗口函数进行经营指标的趋势分析,并结合explain()与查询分析器完成性能调优。文章还涵盖分片一致性检查、索引优化等运维实践,全面覆盖通信系统对安全、性能与扩展性的严苛要求。; 适合人群:具备一定数据库基础,从事通信行业研发、架构或运维工作1-3年的技术人员,尤其是参与5G网络监控、客户数据管理或大数据平台建设的相关人员。; 使用场景及目标:① 实现用户手机号、身份证等敏感信息的加密存储与等值查询,满足安全合规要求;② 构建高吞吐、低延迟的5G基站KPI时序数据存储与分析系统;③ 在数据库层直接完成滑动平均、累计求和等经营分析,减少应用层计算负担;④ 诊断慢查询、验证索引有效性,保障系统高性能运行。; 阅读建议:此资源强调理论与实战结合,建议读者在本地或测试环境部署MongoDB 7.0+版本,动手复现文中代码,重点关注schemaMap配置、时序集合参数选择与窗口函数语法细节,并结合explain执行计划理解底层优化机制,从而真正掌握通信级数据架构的设计精髓。
国央企创新负责人如何借助平台实现技术成果的高价值转化与资源精准配置?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。
产业园区运营负责人如何在平台建设中科学配置创新资源,提升园区内技术对接效率?.docx
产业园区运营负责人如何在平台建设中科学配置创新资源,提升园区内技术对接效率?
产业园区运营负责人如何提升园区内技术供需匹配的精准度?.docx
科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。


图形处理/算法
