开发平台(Platform): (Ex: Win10, Linux, ...)
Win10
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
VC++
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
Opencv 3.1
问题(Question):
我利用inRange方式来过滤cam影像成功后,想要在此影像上绘制有颜色的正方形,
但是却失败
喂入的资料(Input):
预期的正确结果(Expected Output):
使用inRange方式过滤影像后,并在此影像上出现有颜色的正方形
错误结果(Wrong Output):
连同正方形也变成被过滤后的影像#include <cstdio>
#include <cv.h>
#include <highgui.h>
#include<iostream>
using namespace std;
using namespace cv;
int main()
{
VideoCapture cam;
cam.open(1);
cam.set(CV_CAP_PROP_FOURCC, CV_FOURCC('M', 'J', 'P', 'G'));
cam.set(CV_CAP_PROP_FRAME_WIDTH, 640);
cam.set(CV_CAP_PROP_FRAME_HEIGHT, 480);
namedWindow("result", WINDOW_AUTOSIZE);
while(1) {
Mat frame;
cam.read(frame);
if (frame.empty())
break;
Mat srcImage;
srcImage = frame.clone();
Mat hsvImage;
cvtColor(srcImage , hsvImage, CV_BGR2HSV);
Mat hsvThresholdImage;
inRange(hsvImage, Scalar(0, 0, 15), Scalar(360, 255, 175),
hsvThresholdImage);
Mat reszeImg;
cv::resize(hsvThresholdImage, reszeImg,
cv::Size(hsvThresholdImage.cols*2, hsvThresholdImage.rows * 2));
cv::rectangle(reszeImg, cv::Point(150, 40), cv::Point(250, 140),
Scalar(255, 0, 0), -1);
imshow("result", reszeImg);
waitKey(50);
}
destroyWindow("result");
}
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)