C语言如何处理RGB信号

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言如何处理RGB信号相关的知识,希望对你有一定的参考价值。

我已经买了一个颜色传感器,能够获取到R、G、B的值(大小均为0~255),但是我不知道怎么处理。因为我样品都是紫红色的,只是颜色深浅的问题,然后我想通过这个颜色深浅得知我的样品深度(已知它们关系为y=2x+1,其中x是指颜色强度,y是指样品深度)。求大家指教如何将RGB的值通过C语言的方式转换成颜色强度(即y=2x+1中的x),最好的代码,谢谢啦!
可能我没有说清楚,我的意思是我已经获得了RGB值如(R=45,G=56,B=122),我应该如何利用这三个值,因为三个值无法带入我的公式进行计算,所以想请教大家如何将RGB的值(三个)换成颜色强度(一个值)进行计算,是进行灰度转换吗,还是其它方式处理?

参考技术A # include <stdio.h>
//计算样品深度
int sampleDepth(int x)

return (x-1)/2;

int main()

int i=0;
printf("获取到的样品深度是:");
scanf("%d",&i);
printf("颜色强度%d\r\n",sampleDepth(i));
return 0;
参考技术B 下面的资料可看一下
C语言实现数字信号处理算法
http://wenku.baidu.com/view/eb6e24c52cc58bd63186bd02.html
数字信号处理C语言程序集》

scilab,octave是C语言实现的开源的类matlab软件,里面有许多c语言实现的数字信号处理的算法,可以研究一下。

QT中动态添加的QObject的信号(带参数)如何处理?

【中文标题】QT中动态添加的QObject的信号(带参数)如何处理?【英文标题】:How to deal with the SIGNAL(with arguments) of dynamically added QObject in QT? 【发布时间】:2012-02-26 10:11:15 【问题描述】:

我发现QSignalMapper 可以处理带有 NO ArgumentsSIGNALs,但是我如何处理带有它的参数的一些 SIGNALs。

真正的问题是,我动态创建了一些QProgressBar,我想用QNetworkReplydownloadProgress(qint64, qint64)来更新bar,然后问题就出现了。

【问题讨论】:

为什么要使用QSignalMapper @Lol4t0 Nonono..我刚google找到的,不用用,好像解决不了我的问题 【参考方案1】:

问题是QNetworkReply's downloadProgress(qint64, qint64)QProgressBar 的插槽无论如何都不兼容。在这种情况下,信号映射器对您没有帮助,这太具体了。

你必须让你自己的适配器类:

class Adapter: public QObject

    Q_OBJECT
public:
    explicit Adapter(QProgressBar* bar, const QNetworkReply* reply):QObject(bar)
    
        connect(reply, SIGNAL(downloadProgress(qint64,qint64)), SLOT(changeProgress(qint64,qint64)));
    

private slots:
    void changeProgress(qint64 progress, qint64 total)
    
        QProgressBar* bar = static_cast<QProgressBar*>(parent());
        bar->setMaximum(total);
        bar->setValue(progress);
    

;

【讨论】:

以上是关于C语言如何处理RGB信号的主要内容,如果未能解决你的问题,请参考以下文章

c语言是如何处理除法运算的呀?

连续正整数的和 C语言 不知道如何处理这个细节

编程语言如何处理大数算术

C语言 浮点数的阶码和尾数的长度是有限制的,超过的部分该如何处理?会有啥影响?

c#字符串中拼接参数该如何处理?

JavaScript中的内存泄漏以及如何处理