• 大小: 6.88MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-10-13
  • 语言: 其他
  • 标签: Pixy  颜色识别  HSV  

资源简介

里面有Pixy源码,同时有一个main文件,是将Pixy的方法移植到HSV空间了,效果还可以,可以作为参考~

资源截图

代码片段和文件信息

#include 
#include 

using namespace std;
using namespace cv;

const char* windows1 = “rgb“;
const char* windows2 = “dst“;
const char* windowsp = “parameter“;

Mat rgb;             // 原始图像     
Rect rect;           // 选中的区域
bool have = false;   // 是否进行了学习
float m_ratio = 0.8; // 选中区域的hs通道大于百分之多少算好

struct ColorSignature
{
ColorSignature()
{
m_uMin = m_uMax = m_uMean = m_vMin = m_vMax = m_vMean = m_type = 0;
}

int m_uMin;
int m_uMax;
int m_uMean;
int m_vMin;
int m_vMax;
int m_vMean;
int m_rgb;
int m_type;
}sig;

void calcRatios8(Mat& uu Mat& vv struct ColorSignature *sig float ratios[])
{
int n = 0 counts[4];
counts[0] = counts[1] = counts[2] = counts[3] = 0;

for (int i = 0; i {
for (int j = 0; j {
uchar m_u = uu.ptr(i)[j];
uchar m_v = vv.ptr(i)[j];
if (m_u>sig->m_uMin)
counts[0]++;

if (m_um_uMax)
counts[1]++;

if (m_v>sig->m_vMin)
counts[2]++;

if (m_vm_vMax)
counts[3]++;

n++;
}

}

// calc ratios
ratios[0] = (float)counts[0] / n;
ratios[1] = (float)counts[1] / n;
ratios[2] = (float)counts[2] / n;
ratios[3] = (float)counts[3] / n;
// calc mean (because it‘s cheap to do it here)
sig->m_uMean = (sig->m_uMin + sig->m_uMax) / 2;
sig->m_vMean = (sig->m_vMin + sig->m_vMax) / 2;
}

Mat HSVGet(Mat& rgb)
{
Mat m_hsv;
// 先转换为YUV格式
cvtColor(rgb m_hsv cv::COLOR_BGR2HSV);
// 通道分离
vector splits;
split(m_hsv splits);
//// 对每个通道进行处理
int scale = 0;
float ratios[4];
// 取得hs的上下限
for (scale = 1 << 7 sig.m_uMin = sig.m_uMax = sig.m_vMin = sig.m_vMax = 0; scale != 0; scale >>= 1)
{
calcRatios8(splits[0] splits[1] &sig ratios);
if (ratios[0]>m_ratio)
sig.m_uMin += scale;
else
sig.m_uMin -= scale;

if (ratios[1]>m_ratio)
sig.m_uMax -= scale;
else
sig.m_uMax += scale;

if (ratios[2]>m_ratio)
sig.m_vMin += scale;
else
sig.m_vMin -= scale;

if (ratios[3]>m_ratio)
sig.m_vMax -= scale;
else
sig.m_vMax += scale;
}

int range = 2.5;
sig.m_uMin = sig.m_uMean + (sig.m_uMin - sig.m_uMean)*range;
sig.m_uMax = sig.m_uMean + (sig.m_uMax - sig.m_uMean)*range;
range = 3.5;
sig.m_vMin = sig.m_vMean + (sig.m_vMin - sig.m_vMean)*range;
sig.m_vMax = sig.m_vMean + (sig.m_vMax - sig.m_vMean)*range;
have = true;
return Mat();
}

Mat HSVUpdate(Mat& rgb)
{
Mat m_yuv;
Mat m_ret;
// 先转换为YUV格式
cvtColor(rgb m_yuv cv::COLOR_BGR2HSV);
// 通道分离
vector splits;
split(m_yuv splits);
Mat imgh imgs;
inRange(splits[0] Scalar::all(sig.m_uMin) Scalar::all(sig.m_uMax) imgh);
inRange(splits[1] Scalar::all(sig.m_vMin) Scalar::all(sig.m_vMax) imgs);
cv::bitwise_and(imgh imgs m_ret);
return m_ret;
}

void onMouse(int event int x int y int flags void *ustc)
{
static Point pre_pt(-1 -1);
static Point cur_pt(-1 -1);

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       4664  2017-02-01 16:56  main.c

    .......        66  2015-12-01 06:22  pixy-master源代码\.gitignore

    .......    158647  2015-12-01 06:22  pixy-master源代码\contributors.txt

    .......    101934  2015-12-01 06:22  pixy-master源代码\doc\Doxyfile

    .......     13769  2015-12-01 06:22  pixy-master源代码\doc\images\Pixy01-21-136x76.png

    .......     11321  2015-12-01 06:22  pixy-master源代码\doc\images\Pixy01-21-300x168.jpg

    .......      2726  2015-12-01 06:22  pixy-master源代码\doc\images\Pixy01-21-89x50.jpg

    .......       511  2015-12-01 06:22  pixy-master源代码\license.txt

    .......      5309  2015-12-01 06:22  pixy-master源代码\misc\gcc\.metadata\.plugins\org.eclipse.cdt.core\m0.language.settings.xml

    .......     36420  2015-12-01 06:22  pixy-master源代码\misc\gcc\.metadata\.plugins\org.eclipse.cdt.make.core\m0.sc

    .......     36695  2015-12-01 06:22  pixy-master源代码\misc\gcc\.metadata\.plugins\org.eclipse.cdt.make.core\pixy_m0.sc

    .......     56800  2015-12-01 06:22  pixy-master源代码\misc\gcc\.metadata\.plugins\org.eclipse.cdt.make.core\pixy_m4.sc

    .......         1  2015-12-01 06:22  pixy-master源代码\misc\gcc\.metadata\.plugins\org.eclipse.cdt.make.core\specs.c

    .......         1  2015-12-01 06:22  pixy-master源代码\misc\gcc\.metadata\.plugins\org.eclipse.cdt.make.core\specs.cpp

    .......        42  2015-12-01 06:22  pixy-master源代码\misc\gcc\.metadata\.plugins\org.eclipse.core.resources\.projects\m0\.indexes\history.index

    .......        42  2015-12-01 06:22  pixy-master源代码\misc\gcc\.metadata\.plugins\org.eclipse.core.resources\.projects\pixy_m0\.indexes\history.index

    .......        42  2015-12-01 06:22  pixy-master源代码\misc\gcc\.metadata\.plugins\org.eclipse.core.resources\.projects\pixy_m4\.indexes\history.index

    .......       143  2015-12-01 06:22  pixy-master源代码\misc\gcc\.metadata\.plugins\org.eclipse.core.resources\.projects\pixy_m4\.indexes\properties.index

    .......        42  2015-12-01 06:22  pixy-master源代码\misc\gcc\.metadata\.plugins\org.eclipse.core.resources\.projects\video\.indexes\history.index

    .......        58  2015-12-01 06:22  pixy-master源代码\misc\gcc\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.cdt.core.prj-m0.prefs

    .......        58  2015-12-01 06:22  pixy-master源代码\misc\gcc\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.cdt.core.prj-pixy_m0.prefs

    .......        58  2015-12-01 06:22  pixy-master源代码\misc\gcc\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.cdt.core.prj-pixy_m4.prefs

    .......        58  2015-12-01 06:22  pixy-master源代码\misc\gcc\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.cdt.core.prj-video.prefs

    .......       751  2015-12-01 06:22  pixy-master源代码\misc\gcc\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.cdt.debug.core.prefs

    .......      3684  2015-12-01 06:22  pixy-master源代码\misc\gcc\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.cdt.managedbuilder.core.prefs

    .......        42  2015-12-01 06:22  pixy-master源代码\misc\gcc\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.core.resources.prefs

    .......       224  2015-12-01 06:22  pixy-master源代码\misc\gcc\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.ui.browser.prefs

    .......        87  2015-12-01 06:22  pixy-master源代码\misc\gcc\.metadata\.plugins\org.eclipse.core.runtime\.settings\org.eclipse.ui.workbench.prefs

    .......       257  2015-12-01 06:22  pixy-master源代码\misc\gcc\.metadata\.plugins\org.eclipse.ui.workbench\workingsets.xml

    .......        26  2015-12-01 06:22  pixy-master源代码\misc\gcc\.metadata\version.ini

............此处省略1048个文件信息

评论

共有 条评论