vs2019提高与降低图片亮度hsv

只使用vs2019软件,代码中不能包含cv,包含cv运行不了,要只在vs2019能运行的全部代码,将RGB转化为HSV,改变v,再改回RGB,同时如何添加图片,或者说将图片放在哪里代码才能运行,需要全部代码,以及算法思路(如关键代码)。钱不多,请各位喝个奶茶消消暑,帮帮忙吧

添加图片可以使用无格式读写,也可以借助第三方库如gdal
主要代码:RGB->IHS(类似HSV的),主要思路也就是以下三段代码中的注释


//进行正变换
fI = RGBsum/3;
max_min_value(dRGB,nRastercount,dmax,dmin);
fS = (RGBsum - 3*dmin)/RGBsum;
if (dmin == dRGB[0])//R最小
{
    if((RGBsum-3*dRGB[0]) != 0) 
    {
        fH = (dRGB[2]-dRGB[0])/(RGBsum-3*dRGB[0])+1;
    }
    else //加判断预防三数相等情况,一般都是true
    {
        fH = (dRGB[2]-dRGB[0])/(RGBsum-3*dRGB[0]+1)+1;    
    }
}
if (dmin == dRGB[2])//B最小
{
    if((RGBsum-3*dRGB[2]) != 0) 
    {
        fH = (dRGB[1]-dRGB[2])/(RGBsum-3*dRGB[2]);
    }
    else 
    {
        fH = (dRGB[1]-dRGB[2])/(RGBsum-3*dRGB[2]+1);    
    }
}
if (dmin == dRGB[1])//G最小
{
    if((RGBsum-3*dRGB[1]) != 0) 
    {
        fH = (dRGB[0]-dRGB[1])/(RGBsum-3*dRGB[1])+2;
    }
    else 
    {
        fH = (dRGB[0]-dRGB[1])+2;    
    }
}

dRGBt[0] = fI;dRGBt[1] = fS;dRGBt[2] = fH;
//用高空间分辨率的图像替换Intensity亮度分量(此处就可以自己改变fi的值来调整亮度呀)
dRGBt[0] = fI‘;
//进行逆变换
if (dmin == dRGB[0])
{
    br = dRGBt[0]*(1-dRGBt[1]);
    bg = dRGBt[0]*(1+5*dRGBt[1]-3*dRGBt[1]*dRGBt[2]);
    bb = dRGBt[0]*(1-4*dRGBt[1]+3*dRGBt[1]*dRGBt[2]);
}                
if (dmin == dRGB[2])
{
    br = dRGBt[0]*(1+2*dRGBt[1]-3*dRGBt[1]*dRGBt[2]);
    bg = dRGBt[0]*(1-dRGBt[1]+3*dRGBt[1]*dRGBt[2]);
    bb = dRGBt[0]*(1-dRGBt[1]);
}
if (dmin == dRGB[1])
{
    br = dRGBt[0]*(1-7*dRGBt[1]+3*dRGBt[1]*dRGBt[2]);
    bg = dRGBt[0]*(1-dRGBt[1]);
    bb = dRGBt[0]*(1+8*dRGBt[1]-3*dRGBt[1]*dRGBt[2]);
}

https://imagemagick.org/script/color-management.php