energy changed
This commit is contained in:
@@ -118,6 +118,7 @@ private:
|
||||
|
||||
void splitBayerBG(cv::Mat src, cv::Mat &blue, cv::Mat &red);//拜耳阵列分离
|
||||
void imagePreprocess(cv::Mat &src);//图像通道分离
|
||||
void hsvFilter(cv::Mat &src);//此函数通过HSV颜色空间对图像纯度进行限制,进行滤光
|
||||
|
||||
void StructingElementClose(cv::Mat &src,int length, int width);//闭运算
|
||||
void StructingElementErodeDilate(cv::Mat &src);//腐蚀和膨胀
|
||||
|
||||
28
energy/src/energy/calibrate/hsv_filter.cpp
Normal file
28
energy/src/energy/calibrate/hsv_filter.cpp
Normal file
@@ -0,0 +1,28 @@
|
||||
//
|
||||
// Created by sun on 19-7-7.
|
||||
//
|
||||
|
||||
#include "energy/energy.h"
|
||||
|
||||
using namespace std;
|
||||
using namespace cv;
|
||||
|
||||
|
||||
|
||||
//----------------------------------------------------------------------------------------------------------------------
|
||||
// 此函数用于利用HSV颜色空间对图像进行预处理
|
||||
// ---------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
void Energy::hsvFilter(cv::Mat &src){
|
||||
Mat hsv, hsv_in_range;
|
||||
cvtColor(src, hsv, CV_BGR2HSV);
|
||||
// imshow("hsv", hsv);
|
||||
vector<Mat> hsv_channels;
|
||||
split(hsv, hsv_channels);
|
||||
Mat H = hsv_channels.at(0);
|
||||
Mat S = hsv_channels.at(1);
|
||||
Mat V = hsv_channels.at(2);
|
||||
// imshow("S", S);
|
||||
inRange(hsv,Scalar(0,150,0),Scalar(180,255,255),hsv_in_range);
|
||||
// imshow("in range", hsv_in_range);
|
||||
}
|
||||
@@ -52,9 +52,9 @@ void Energy::imagePreprocess(cv::Mat &src) {
|
||||
{
|
||||
std::vector<Mat> channels;
|
||||
split(src, channels);
|
||||
resize(channels.at(0), src_blue, Size(SRC_WIDTH, SRC_HEIGHT));
|
||||
resize(channels.at(1), src_green, Size(SRC_WIDTH, SRC_HEIGHT));
|
||||
resize(channels.at(2), src_red, Size(SRC_WIDTH, SRC_HEIGHT));
|
||||
resize(channels.at(0), src_blue, Size(src.size().width/2, src.size().height/2));
|
||||
resize(channels.at(1), src_green, Size(src.size().width/2, src.size().height/2));
|
||||
resize(channels.at(2), src_red, Size(src.size().width/2, src.size().height/2));
|
||||
if(ally_color == ALLY_RED)
|
||||
{
|
||||
src = src_red-src_blue;
|
||||
@@ -64,7 +64,7 @@ void Energy::imagePreprocess(cv::Mat &src) {
|
||||
//src=src_blue;
|
||||
}
|
||||
}
|
||||
cv::resize(src, src, cv::Size(640, 480), 2);
|
||||
cv::resize(src, src, cv::Size(src.size().width * 2, src.size().height * 2), 2);
|
||||
threshold(src, src, energy_part_param_.SPLIT_GRAY_THRESH, 255, THRESH_BINARY);
|
||||
|
||||
}
|
||||
|
||||
@@ -73,7 +73,7 @@ int Energy::runBig(cv::Mat &gimble_src, cv::Mat &chassis_src){
|
||||
// 此函数为大能量机关模式主控制流函数,且步兵仅拥有云台摄像头
|
||||
// ---------------------------------------------------------------------------------------------------------------------
|
||||
int Energy::runBig(cv::Mat &gimble_src){
|
||||
// imshow("src",src);
|
||||
imshow("src",gimble_src);
|
||||
fans.clear();
|
||||
armors.clear();
|
||||
centerRs.clear();
|
||||
@@ -82,22 +82,21 @@ int Energy::runBig(cv::Mat &gimble_src){
|
||||
|
||||
changeMark();
|
||||
if (isMark)return 0;
|
||||
// imagePreprocess(src);
|
||||
// imshow("img_preprocess",src);
|
||||
// imagePreprocess(gimble_src);
|
||||
// imshow("img_preprocess", gimble_src);
|
||||
|
||||
threshold(gimble_src, gimble_src, energy_part_param_.GRAY_THRESH, 255, THRESH_BINARY);
|
||||
// imshow("bin",src);
|
||||
imshow("bin",gimble_src);
|
||||
|
||||
fans_cnt = findFan(gimble_src, last_fans_cnt);
|
||||
// cout<<"fans_cnt: "<<fans_cnt<<endl;
|
||||
if(fans_cnt==-1) return 0;//滤去漏判的帧
|
||||
// if(fans_cnt>0)showFanContours("fan",src);
|
||||
// fans_cnt=0;
|
||||
|
||||
armors_cnt = findArmor(gimble_src, last_armors_cnt);
|
||||
// cout<<"armors_cnt: "<<armors_cnt<<endl;
|
||||
if(armors_cnt==-1) return 0;//滤去漏判的帧
|
||||
// if(armors_cnt>0) showArmorContours("armor",src);
|
||||
// if(armors_cnt>0) showArmorContours("armor",gimble_src);
|
||||
|
||||
if(armors_cnt != fans_cnt+1) return 0;
|
||||
|
||||
@@ -142,7 +141,7 @@ int Energy::runSmall(cv::Mat &gimble_src){
|
||||
imshow("gimble src", gimble_src);
|
||||
if(gimble_src.type()== CV_8UC3)cvtColor(gimble_src, gimble_src, COLOR_BGR2GRAY);
|
||||
fans.clear();
|
||||
armors.clear();
|
||||
armors.clear();-
|
||||
threshold(gimble_src, gimble_src, energy_part_param_.GRAY_THRESH, 255, THRESH_BINARY);
|
||||
imshow("bin",gimble_src);
|
||||
fans_cnt = findFan(gimble_src, last_fans_cnt);
|
||||
|
||||
Reference in New Issue
Block a user