- cv::Mat lightImg = cv::imread("lightOn.jpg");
- cv::Mat lightImg_2 = cv::imread("lightOff.jpg");
- cv::Mat lightOnROI,
- cv::Mat lightOffROI;
- lightOnROI = image(cv::Rect(0,0,lightImg.size().width,lightImg.size().height));
- lightOffROI = image(cv::Rect(image.size().width-lightImg.size().width,0,lightImg.size().width,lightImg.size().height));
- cv::addWeighted(lightOnROI,1.0,lightImg,1.0,0.,lightOnROI);
- cv::addWeighted(lightOffROI,1.0,lightImg_2,1.0,0.,lightOffROI);
- for(int y=0;y<2;y++)
- {
- for(int x=0;x<2;x++)
- {
- /cout<<y<<","<<x<<","<<z<<endl;
- if(abs(nowValue[z]-tempValue[z])>lightThreshold) //light 門檻
- {
- //cout<<"LightOn"<<endl;
- tempValue[z] = nowValue[z];
- lightState = 1;
- }
- int redValue = image.at<cv::Vec3b>(y,x)[0];
- int greenValue = image.at<cv::Vec3b>(y,x)[1];
- int blueValue = image.at<cv::Vec3b>(y,x)[2];
- nowValue[z++] = redValue + greenValue + blueValue;
- //cout<<"tempValue:"<<tempValue[z]<<","<<"nowValue:"<<nowValue[z]<<endl;
- if(z>3)
- {
- z=0;
- }
- }
- }
觸碰左右圖示即改變像素值,控制LED亮暗
arduino端接收
- if(Serial.available()>0)
- lightState = Serial.read();
程式碼
- https://drive.google.com/file/d/0B3iLa8F71LQwemVPNm1LUE96SW8/edit?usp=sharing


沒有留言:
張貼留言