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的值(三个)换成颜色强度(一个值)进行计算,是进行灰度转换吗,还是其它方式处理?
//计算样品深度
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 Arguments 的 SIGNAL
s,但是我如何处理带有它的参数的一些 SIGNAL
s。
真正的问题是,我动态创建了一些QProgressBar
,我想用QNetworkReply
的downloadProgress(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信号的主要内容,如果未能解决你的问题,请参考以下文章