Example #1
0
void incBrightness(void)
{
	if(fBrightness < 255)
	{
		fBrightness++;
		calcEdges();
	}
}
Example #2
0
void decBrightness(void)
{
	if(fBrightness > 0)
	{
		fBrightness--;
		calcEdges();
	}
}
Example #3
0
void initDevice(void)
{
	// Init randomizer
	srand();
	
	// Main timer Frames counter
	fFrameCounter = 0;

	// PWM Counters to null
	fPwmLedCounter1 = 0;
	fPwmLedCounter2 = 0;

	// Inital PWM Values
	fPwmLedValue1 = 1;
	fPwmLedValue2 = 1;

	// Default brightness values
	fBrightness = 0;
	fCanIncrement = 0;
	
	// Recalc PWM Edges
	calcEdges();
}
Example #4
0
int main(int argc, char* argv[]) {
    if (argc < 2) {
        std::cout << "USAGE: program [path_to_image] (width)  (height)" << std::endl;
        std::cout << "                               optional optional" << std::endl;
        return 0;
    }

    cv::Mat img = cv::imread(argv[1], CV_LOAD_IMAGE_GRAYSCALE);
    if (!img.data){
        std::cout << "[ERROR]: loading image" << std::endl;
        return 0;
    }

    int rows = 0;
    int cols = 0;

    if (argc > 2) {
        rows = std::stoi(argv[2]);
        if (argc > 3) {
            cols = std::stoi(argv[3]);
        } else {
            cols = rows;
        }
    } else {
        rows = cols = 50;
    }

    /// jam::StopWatch sw;
    /// sw.start();

    // let's get to it
    img.convertTo(img, CV_32F);
    cv::resize(img, img, cv::Size(rows, cols), 0, 0, CV_INTER_AREA);

    // get image's edges
    cv::Mat edge_angles, edge_strength;
    calcEdges(img, edge_angles, edge_strength);

    // remove noisy edges
    // find a mask of non-noisy edges
    const float thresh = optimalThresh(edge_strength) * 2;
    cv::Mat bin_img(rows, cols, CV_8U);
    cv::threshold(edge_strength, bin_img, thresh, 1, CV_THRESH_BINARY);
    bin_img.convertTo(bin_img, CV_8U);

    // set the non-noisy edges, and mark the noisy ones
    cv::Mat result_angles(rows, cols, CV_32F);
    result_angles = NO_EDGE;
    edge_angles.copyTo(result_angles, bin_img);

    // generate a string out of edges
    std::string result = img2ascii(result_angles);

    // print the string
    puts(result.c_str());
    /// sw.measure();
    /// std::cout << sw.asMilliseconds() << std::endl;

    /*
    cv::namedWindow("debug", CV_WINDOW_NORMAL);
    show(img);
    show(edge_strength);
    show((result_angles + M_PI / 2) * (255 / M_PI));
    */

    return 0;
}