開發平台(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):(請善用置底文網頁, 記得排版,禁止使用圖檔)