Schindler的列表照片过滤器C++

 新维斯教育逄博 发布于 2023-02-07 10:28

我正在试图弄清楚如何为.bmp文件制作Schindlers List(电影)风格的照片过滤器.对于那些没有看过它的人,我希望能够制作除红色之外的所有灰度.

这是一个类,我只允许使用以下库:iostream,fstream,cstdlib,string,cstring.

老师非常好,可以为我们提供大部分代码,我只需要相应地修改像素.

我的灰度算法并不完美.我通过使用fotor的灰度滤镜并比较前后RGB值得到它.当我运行此功能时,即使图片的颜色在我声明的范围内,整个图像也会以灰度结束.

如果有人能帮我做这项工作那就太棒了!

void process( int& red, int& green, int& blue ) //schindler's list filter
{
    if( red   < 143 && red   > 80 &&
        green <  64 && green > 24 &&
        blue  <  70 && blue  >> 30 )//my red range
    {
        red = red;
        blue = blue;
        green = green;
    }
    else //if the pixel isnt red the program will go ahead and make it grayscale
    {
        red = ((red + green) / 2)*1.01;
        green =  red;
        blue = red;

    }
}

Lightness Ra.. 5

blue >> 30

愚蠢的错字:你的意思blue > 30.

blue >> 30基本上总是为零,它会转换为false"保持颜色不变"的块.

如果有人能帮我做这项工作那就太棒了!

我们并不是真的在这里.下次请做一些调试.

删除条件,输出表达式和变量的值,直到找到不符合预期的值.做一个测试用例.摘要你的具体用例(即电影的名称与问题无关).

顺便说一下,作为一种风格red = red等问题完全没有意义!

1 个回答
  • blue >> 30
    

    愚蠢的错字:你的意思blue > 30.

    blue >> 30基本上总是为零,它会转换为false"保持颜色不变"的块.

    如果有人能帮我做这项工作那就太棒了!

    我们并不是真的在这里.下次请做一些调试.

    删除条件,输出表达式和变量的值,直到找到不符合预期的值.做一个测试用例.摘要你的具体用例(即电影的名称与问题无关).

    顺便说一下,作为一种风格red = red等问题完全没有意义!

    2023-02-07 10:30 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有