#ifndef __CONTOURGF_EXTEND_H__ #define __CONTOURGF_EXTEND_H__ #include "ContourGf.h" class ContourGfExtend :public ContourGf { public: ContourGfExtend():ContourGf() { contourAspectRatio=0.0; contourRectangularity=0.0; contourGrayValue=0; colorPercentage[0]=0.0; colorPercentage[1]=0.0; colorPercentage[2]=0.0; } ContourGfExtend(double contourAspectRatio, double contourRectangularity, int contourGrayValue):ContourGf() { this->contourAspectRatio=contourAspectRatio; this->contourRectangularity=contourRectangularity; this->contourGrayValue=contourGrayValue; } ContourGfExtend(double contourAspectRatio, double contourRectangularity, int contourGrayValue, int contourPerimeter, int contourArea, cv::Point& contourCenter, cv::Point& leftTop, cv::Point& rightBottom) : ContourGf(contourPerimeter, contourArea, contourCenter, leftTop, rightBottom) { this->contourAspectRatio=contourAspectRatio; this->contourRectangularity=contourRectangularity; this->contourGrayValue=contourGrayValue; } ~ContourGfExtend(){} private: double contourAspectRatio; double contourRectangularity; int contourGrayValue; cv::RotatedRect rotRect; int contourIndex; cv::Size size;//选择矩形的宽和高 double colorPercentage[3];//颜色比例,rgb public: void setColorPercentage(double v1,double v2,double v3) { colorPercentage[0]=v1; colorPercentage[1]=v2; colorPercentage[2]=v3; } double getColorPercentage(int vIndex) { return colorPercentage[vIndex]; } double getContourAspectRatio() { return contourAspectRatio; } void setContourAspectRatio(double contourAspectRatio) { this->contourAspectRatio=contourAspectRatio; } double getContourRectangularity() { return contourRectangularity; } void setContourRectangularity(double contourRectangularity) { this->contourRectangularity=contourRectangularity; } int getContourGrayValue() { return contourGrayValue; } void setContourGrayValue(int contourGrayValue) { this->contourGrayValue=contourGrayValue; } const cv::RotatedRect& getRotatedRect() { return rotRect; } void setRotatedRect(const cv::RotatedRect& rotRect) { this->rotRect=rotRect; } const int getRotRectArea() { return rotRect.size.width * rotRect.size.height; } void setContourIndex(int contourIndex) { this->contourIndex=contourIndex; } int getContourIndex() { return contourIndex; } void setSize(cv::Size size) { this->size=size; } const cv::Size& getSize() { return size; } }; #endif