forked from gallant/freesight
Fix rectangle colors, attempt to draw rectangle on section
This commit is contained in:
parent
e0c1709867
commit
adac66432c
|
@ -97,39 +97,51 @@ public class FreeSightPipeline extends OpenCvPipeline {
|
||||||
Imgproc.findContours(scaledThresh, contours, hierarchy, Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_NONE);
|
Imgproc.findContours(scaledThresh, contours, hierarchy, Imgproc.RETR_EXTERNAL, Imgproc.CHAIN_APPROX_NONE);
|
||||||
|
|
||||||
|
|
||||||
|
Mat threshRGB = new Mat();
|
||||||
int index = 0;
|
Imgproc.cvtColor(threshold, threshRGB, Imgproc.COLOR_GRAY2BGR);
|
||||||
int area = 0;
|
if (contours.size() > 0) {
|
||||||
for (int i = 0; i < contours.size(); i++)
|
int index = 0;
|
||||||
{
|
int area = 0;
|
||||||
MatOfPoint bar = contours.get(i);
|
for (int i = 0; i < contours.size(); i++)
|
||||||
int foo = bar.width() * bar.height();
|
|
||||||
if(foo > area)
|
|
||||||
{
|
{
|
||||||
index = i;
|
MatOfPoint bar = contours.get(i);
|
||||||
area = foo;
|
int foo = bar.width() * bar.height();
|
||||||
|
if(foo > area)
|
||||||
|
{
|
||||||
|
index = i;
|
||||||
|
area = foo;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
MatOfPoint contour = contours.get(index);
|
MatOfPoint contour = contours.get(index);
|
||||||
|
|
||||||
Rect boundingRect = Imgproc.boundingRect(contour);
|
Rect boundingRect = Imgproc.boundingRect(contour);
|
||||||
// center is ( x + w ) / 2
|
// center is ( x + w ) / 2
|
||||||
|
|
||||||
int point = (boundingRect.x + boundingRect.width) / 2;
|
int point = (boundingRect.x + boundingRect.width) / 2;
|
||||||
|
|
||||||
Imgproc.rectangle(
|
Imgproc.rectangle(
|
||||||
threshold,
|
threshRGB,
|
||||||
boundingRect,
|
boundingRect,
|
||||||
outline
|
outline
|
||||||
);
|
);
|
||||||
|
|
||||||
if(point < width / 3)
|
int bigX;
|
||||||
positionState = Side.LEFT;
|
if(point < width / 3) {
|
||||||
else if(point > width / 1.5)
|
positionState = Side.LEFT;
|
||||||
positionState = Side.RIGHT;
|
bigX = 0;
|
||||||
else
|
}
|
||||||
positionState = Side.MIDDLE;
|
else if(point > width / 1.5) {
|
||||||
|
positionState = Side.RIGHT;
|
||||||
|
bigX = width * 2 / 3;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
positionState = Side.MIDDLE;
|
||||||
|
bigX = width / 3;
|
||||||
|
}
|
||||||
|
|
||||||
|
Imgproc.rectangle(threshRGB, new Rect(bigX, 0, width / 3, height), outline);
|
||||||
|
}
|
||||||
|
|
||||||
//list of frames to reduce inconsistency, not too many so that it is still real-time, change the number from 5 if you want
|
//list of frames to reduce inconsistency, not too many so that it is still real-time, change the number from 5 if you want
|
||||||
if (frameList.size() > 5) {
|
if (frameList.size() > 5) {
|
||||||
|
@ -142,7 +154,8 @@ public class FreeSightPipeline extends OpenCvPipeline {
|
||||||
scaledMask.release();
|
scaledMask.release();
|
||||||
mat.release();
|
mat.release();
|
||||||
masked.release();
|
masked.release();
|
||||||
return threshold;
|
threshold.release();
|
||||||
|
return threshRGB;
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue