本文整理汇总了C++中ImageProcessor::processFrame方法的典型用法代码示例。如果您正苦于以下问题:C++ ImageProcessor::processFrame方法的具体用法?C++ ImageProcessor::processFrame怎么用?C++ ImageProcessor::processFrame使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ImageProcessor
的用法示例。
在下文中一共展示了ImageProcessor::processFrame方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
int main(int argc, char **argv)
{
if (argc != 2) {
exit(1);
}
signal(SIGINT, intHandler);
std::string arg = argv[1];
cv::VideoCapture capture(arg); //try to open string, this will attempt
if (!capture.isOpened()) //if this fails, try to open as a video camera
capture.open(atoi(arg.c_str()));
if (!capture.isOpened()) {
std::cerr << "Failed to open a video device or video file!\n" << std::endl;
return 1;
}
ImageProcessor *ip = new HSV_Region_Processor_Min_Alloc(capture);
BotController *bt = new BotController();
Region *dp;
cv::Mat frame;
ip->initialiseWindow();
std::vector<Region *> *regionList;
while (keepRunning) {
capture >> frame;
ip->cleanRegionList();
regionList = ip->processFrame(frame);
std::sort(regionList->begin(), regionList->end(), compareBySize);
dp = (*regionList)[0];
if (dp != NULL && dp->getSize() > 100) {
double angle = ip->angle(frame, *dp);
double distance = ip->distance(frame, *dp);
std::cout << angle << " - " << distance << std::endl;
bt->move(angle, distance);
ip->drawArrow(frame, angle, distance);
//ip->saveFrame(frame);
} else {
std::cout << "No object found, sitting still" << std::endl;
bt->stop();
}
ip->drawFrame(frame);
cv::waitKey(5);
// ip->processKeys(frame);
}
std::cout << "Shutting down" << std::endl;
bt->stop();
}
示例2: updateClicked
void VisionWindow::updateClicked(int xIdx, int yIdx, int buttonIdx){
if(!initialized_) return;
int image = currentBigImageCam_;
ImageProcessor* processor = getImageProcessor(image);
unsigned char* colorTable = processor->getColorTable();
const ImageParams& iparams = processor->getImageParams();
if (doingCalibration_) {
Sample s; s.x = xIdx; s.y = yIdx;
if(image == IMAGE_TOP)
s.camera = Camera::TOP;
else
s.camera = Camera::BOTTOM;
emit calibrationSampleAdded(s);
redrawImages();
}
if (doingClassification_) {
if (buttonIdx == Qt::LeftButton) {
//for(int i=0; i < LUT_SIZE; i++)
//std::cout << colorTable[i] << "\,";
//std::cout << "DONE\n";
memcpy(tempTable,colorTable,LUT_SIZE);
ColorTableMethods::xy2yuv(processor->getImg(), xIdx, yIdx, iparams.width, currentY_, currentU_, currentV_);
updateTable(colorTable, currentY_, currentU_, currentV_);
//for(int i=0; i < LUT_SIZE; i++)
//std::cout << tempTable[i] << "\,";
//sstd::cout << "\n";
colorUpdateAvailable_ = true;
redrawImages();
processor->processFrame();
memcpy(colorTable,tempTable,LUT_SIZE);
} else if (buttonIdx == Qt::RightButton && colorUpdateAvailable_) {
memcpy(undoTable, colorTable, LUT_SIZE);
undoImage_ = image;
updateTable(colorTable, currentY_, currentU_, currentV_);
colorUpdateAvailable_ = false;
redrawImages();
}
}
}