OPENCV在实时摄像机供稿中更改颜色
OpenCV change colors in real time camera feed
我正在使用opencv 2.4.9。我在新窗口中使用OpenCV运行相机打开相机。我想更改钥匙按下的相机进纸的颜色。例如,当我单击" 1'相机提要"为灰度时," 2" ->黑白," 3" -> hsv,当我按'ESC'返回时(0(。到目前为止,我出现了这一点:
#include <iostream>
#include <conio.h>
using namespace std;
#include<opencvcv.h>
#include<opencvhighgui.h>
#include "opencv2corecore.hpp"
#include "opencv2imgprocimgproc.hpp"
void main(){
CvCapture *capture = cvCaptureFromCAM(CV_CAP_ANY);
IplImage *frame = 0, *image = 0;
int key = 0, last = 0;
cvNamedWindow("WebCamera", CV_WINDOW_AUTOSIZE);
while(key != 27) {
frame = cvQueryFrame(capture);
image = cvCloneImage(frame);
// i try to use swich and case for this but i can't get it work
// when using cvtColor need to use Mat image but when use cvShowImage need IplImage
// switch(last)
// {
// case '1':
// cvtColor(image,HSVimage,CV_BGR2HSV);
// case '2':
// cvtColor(image,HSVimage,CV_BGR2GRAY);
// case '3':
// .
// .
// default: break;
// }
cvShowImage("WebCamera", image);
cvReleaseImage(&image);
key = cvWaitKey(1);
if (key != -1) last = key;
}
cvDestroyWindow("WebCamera");
cvReleaseCapture(&capture);
exit(0);
}
我想在同一窗口中一次又一次地更改颜色,或者(如果不可能(打开并关闭每个颜色过滤器的窗口。谢谢。对不起,英语不好
它应该与下面的代码一起使用。从该OpenCV教程和OpenCV文档中获取它。
#include "opencv2/opencv.hpp"
#include <iostream>
using namespace cv;
using namespace std;
int main()
{
int key = 0, last = 0;
VideoCapture cap(0); // open the default camera
if(!cap.isOpened()) // check if we camera is opened
{
cout << "Cannot open selected camera" << endl;
return -1;
}
namedWindow("Capture",1);
Mat convertedImage;
for(;;) //Loop until user hit "esc"
{
Mat frame;
cap >> frame; // get a new frame from camera
switch(last)
{
case '1':
{
cvtColor(frame,convertedImage,CV_BGR2GRAY);
break;
}
case '2': //Binarization to generate Black/White image
{
Mat img_gray;
cvtColor(frame,img_gray,CV_BGR2GRAY); //First convert to gray
//Binarization. Use your parameters here or try adaptiveThreshold
threshold(img_gray, convertedIamge, 0, 255, CV_THRESH_BINARY | CV_THRESH_OTSU);
}
case '3':
{
cvtColor(frame,convertedImage,CV_BGR2HSV);
break;
}
default: //use to prevent ecxeption at program start or use case '0' to show original image
{
convertedImage = frame;
}
}
imshow("Capture", convertedImage); //show converted image
key = waitKey(1);
if (key != -1)
last = key;
if(key == 27)
break;
// the camera will be deinitialized automatically in VideoCapture destructor
}
return 0;
}
我没有检查此(编译(..但是我认为它可以帮助您。
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
using namespace cv;
using namespace std;
int main() {
VideoCapture stream1(0);
if (!stream1.isOpened()) { cout << "cannot open camera"; }
while (true) {
Mat cameraFrame;
stream1.read(cameraFrame);
switch(last)
{
case '1':
cvtColor(image,HSVimage,CV_BGR2HSV);
break;
case '2':
cvtColor(image,HSVimage,CV_BGR2GRAY);
break;
case '3':
...}
imshow("cam", cameraFrame);
key = cvWaitKey(1);
if (key != -1) last = key;
}
return 0;
}
相关文章:
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 如何在内核C++中使用1920x1080x16M图形或类似的16M颜色?(VGA)
- 如何在24位SDL_Surface上设置像素的颜色
- 从数据库实时显示QT c++中的数据
- 如何从SDL_Surface获取特定像素的颜色
- 在 Windows 8/10 技术中完全实时的屏幕捕获,没有延迟
- 有没有办法使用 c++ 实时阅读文本?
- 在本地网络中通过OpenCV(C++)实时流式传输图像
- 将相机数据从服务器实时流式传输到客户端
- 列表视图更改选择颜色
- GtkTreeView 交替行颜色
- dx11 渲染到纹理仅显示透明颜色
- 使用 OpenGL 4.5 更改所选顶点的颜色
- 为什么我的 LEGACY OPENGL 颜色反转了?
- 将实时(非静态)放在qt(c ++)上
- 线程之间的实时数据共享
- 如何在实时应用程序中锁定线程
- 双击更改 mfc 中列表控件中的行的颜色
- OPENCV在实时摄像机供稿中更改颜色
- 实时颜色映射从c++数组