thresholds.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include <iostream>
00026
00027 #include "models/color/thresholds.h"
00028
00029 using namespace std;
00030
00031
00032
00033
00034
00035
00036 color_t
00037 ColorModelThresholds::determine(unsigned int y,
00038 unsigned int u,
00039 unsigned int v) const
00040 {
00041 if ( y >= THRESHOLD_WHITE_Y_LOW) {
00042 return C_WHITE;
00043 }
00044 if ( u <= THRESHOLD_GREEN_U_HIGH &&
00045 v <= THRESHOLD_GREEN_V_HIGH) {
00046 return C_GREEN;
00047 }
00048 else if (
00049 u <= THRESHOLD_ORANGE_U_HIGH &&
00050 v >= THRESHOLD_ORANGE_V_LOW) {
00051 return C_ORANGE;
00052 }
00053 else if (u >= THRESHOLD_BLUE_U_LOW &&
00054 v <= THRESHOLD_BLUE_V_HIGH) {
00055 return C_BLUE;
00056 }
00057 else if (u <= THRESHOLD_YELLOW_U_HIGH &&
00058 v >= THRESHOLD_YELLOW_V_LOW) {
00059 return C_YELLOW;
00060 }
00061 else if (u >= THRESHOLD_MAGENTA_U_LOW &&
00062 v >= THRESHOLD_MAGENTA_V_LOW) {
00063 return C_MAGENTA;
00064 }
00065 else if (THRESHOLD_CYAN_U_LOW <= u &&
00066 u <= THRESHOLD_CYAN_U_HIGH &&
00067 v <= THRESHOLD_CYAN_V_HIGH) {
00068 return C_CYAN;
00069 }
00070 else {
00071 return C_OTHER;
00072 }
00073 }
00074
00075 const char *
00076 ColorModelThresholds::get_name()
00077 {
00078 return "ColorModelThresholds";
00079 }
00080
00081
00082
00083
00084 void
00085 ColorModelThresholds::print_thresholds()
00086 {
00087 cout << "ColorModelThresholds" << endl
00088 << "==========================================================" << endl
00089 << "Orange: u_low=" << THRESHOLD_ORANGE_U_LOW
00090 << " u_high=" << THRESHOLD_ORANGE_U_HIGH
00091 << " v_low=" << THRESHOLD_ORANGE_V_LOW
00092 << endl
00093 << "Yellow: u_high=" << THRESHOLD_YELLOW_U_HIGH
00094 << " v_low=" << THRESHOLD_YELLOW_V_LOW
00095 << endl;
00096 }