2017-09-30 04:14:20 -0600
| commented question | Hi I want to open camera in windows forms in cpp. Dear Berak, I could open camera on windows form now. Thanks for your response.
|
2017-09-23 04:15:44 -0600
| commented question | Hi I want to open camera in windows forms in cpp. Actually i have an application for reading characters from license plate by loading images from file by clicking a load |
2017-09-23 03:55:53 -0600
| edited question | Hi I want to open camera in windows forms in cpp. Hi I want to open camera in windows forms in cpp.
I have an application to load images from files for processing, but I |
2017-09-23 03:52:11 -0600
| asked a question | Hi I want to open camera in windows forms in cpp. Hi I want to open camera in windows forms in cpp.
I have an application to load images from files for processing, but I |
2017-03-25 10:32:03 -0600
| received badge | ● Supporter
(source)
|
2017-03-25 07:26:38 -0600
| asked a question | hi, i have to draw contour over a rectangle shape, but its drawiing contours over other small features.here i put the code since i have only one karma i cannot upload images
the video is played on a white background with most of its area covered by the rectangle shape thing
pls help me with a solution include<opencv2 opencv.hpp=""> include "opencv2/highgui/highgui.hpp" include "opencv2/imgproc/imgproc.hpp" include <iostream> include <stdio.h> include <stdlib.h> include <math.h> using namespace cv;
using namespace std; Mat imgOriginal;
int largest_area = 0;
int largest_contour_index = 0;
Rect bounding_rect; int theObject[2] = { 0,0 }; Rect bounding_rect = Rect(0, 0, 0, 0); void searchForMovement(Mat thresholdImage, Mat &cameraFeed)
{
bool objDetected = false;
Mat temp;
thresholdImage.copyTo(temp); vector<vector<Point>>contours;
vector<Vec4i>hierarchy;
findContours(temp, contours, hierarchy, CV_RETR_EXTERNAL, CV_CHAIN_APPROX_SIMPLE);
printf("%ld\n", contours.size());
if (contours.size() > 0) objDetected = true;
else objDetected = false;
if (objDetected)
{
for (size_t i = 0; i< contours.size(); i++) // iterate through each contour.
{
double area = contourArea(contours[i]); // Find the area of contour
if (area > largest_area)
{
largest_area = area;
largest_contour_index = i; //Store the index of largest contour
bounding_rect = boundingRect(contours[i]); // Find the bounding rectangle for biggest contour
}
}
}
Scalar color = Scalar(0, 0, 255);
drawContours(imgOriginal, contours, -1, color);
Mat roi = Mat(imgOriginal, bounding_rect);
// show the images
imshow("result", imgOriginal);
imshow("roi", roi);
Size size(411, 405);
Mat dst;
resize(roi, dst, size);
imwrite("result.png", dst);
//Mat q, w;
Mat e = imread("result0.png");
namedWindow("X", WINDOW_AUTOSIZE);
imshow("X", e);
cv::Mat Q(dst.size(), dst.type());
cv::threshold(dst, Q, 100, 255, cv::THRESH_BINARY);
cv::Mat W(e.size(), e.type());
cv::threshold(e, W, 100, 255, cv::THRESH_BINARY);
Mat Solar = Q - W;
int count_black = 0;
int count_white = 0;
for (int y = 0; y < Solar.rows; y++) {
for (int x = 0; x < Solar.cols; x++) {
if (Solar.at<cv::Vec3b>(y, x) == cv::Vec3b(255, 255, 255)) {
count_white++;
}
else if (Solar.at<cv::Vec3b>(y, x) == cv::Vec3b(0, 0, 0)) {
count_black++;
}
}
}
cout << count_black << endl;
cout << count_white << endl;
//long float g = 0;
//g = count_black / count_white;
//cout << g;
int x = theObject[0];
int y = theObject[1];
circle(cameraFeed, Point(x, y), 20, Scalar(0, 255, 0), 2);
line(cameraFeed, Point(x, y), Point(x, y - 25), Scalar(0, 255, 0), 2);
line(cameraFeed, Point(x, y), Point(x, y + 25), Scalar(0, 255, 0), 2);
line(cameraFeed, Point(x, y), Point(x - 25, y), Scalar(0, 255, 0), 2);
line(cameraFeed, Point(x, y), Point(x + 25, y), Scalar(0, 255, 0), 2);
} int main(int argc, char** argv)
{
VideoCapture cap(0);
if (!cap.isOpened())
{
cout << "Cannot open camera" << endl;
return -1;
}
namedWindow("Control", WINDOW_AUTOSIZE); while (true)
{
bool bSuccess = cap.read(imgOriginal);
if (!bSuccess)
{
cout << "Cannot read frame from video" << endl;
break;
}
Mat image, imgThreshold;
cvtColor(imgOriginal, image, CV_BGR2GRAY);
threshold(image, imgThreshold, 150, 255, THRESH_BINARY_INV);
searchForMovement(imgThreshold, imgOriginal);
imshow("Thresholded Image", imgThreshold);
imshow("Original", imgOriginal);
if (waitKey(30) == 27)
{
cout << "Esc key pressed" << endl;
break;
}
}
return 0;
} |
2017-03-24 10:58:15 -0600
| asked a question | Hi i want to pass information to arduino.Which additional libraries should be included? i have a sample code .here i put the headers used include "opencv2/objdetect/objdetect.hpp" include "opencv2/highgui/highgui.hpp" include "opencv2/imgproc/imgproc.hpp" include <iostream> include "Tserial.h" the header #include "Tserial.h" showing error .what should i do |
2017-03-23 09:08:53 -0600
| commented question | The cropped roi image is just tilted.I wanted it to be tilted to correct rectangular axes.What method should be used to do.Pls help me with a solution Yes I want it to be rotated |
2017-03-23 00:53:42 -0600
| asked a question | Hi,i want to give an output from opencv using visual studio to arduino.How can it be done? Output from opencv is needed as output to arduino to make an external hardware work |
2017-03-23 00:46:12 -0600
| asked a question | The cropped roi image is just tilted.I wanted it to be tilted to correct rectangular axes.What method should be used to do.Pls help me with a solution |
2017-03-22 11:55:52 -0600
| commented answer | Contour fn is not working well and not getting subpixel image by warpaffine fn how to give loop around rotated rect |
2017-03-22 11:38:01 -0600
| commented answer | Contour fn is not working well and not getting subpixel image by warpaffine fn I changed the THRESH_BINARY in threshold fn to THRESH_BINARY_INV, but it showing some command error.Here i put the code to find contour with the change and the command window error.
OpenCV Error:Assertion failed < scn==3||scn==4> in cv::cvtColor, file C:\build\master_winpack-build-win64-vc14\opencv\modules\imgproc\src\color.cpp,line 9748 |
2017-03-22 10:31:58 -0600
| commented answer | Contour fn is not working well and not getting subpixel image by warpaffine fn Ok . let me try this.i will let you know the result.What about cropping?
Moreover i use single channel image,but there is a fn
Mat drawing = Mat::zeros(threshold_output.size(), CV_8UC3);
for (int i = 0; i< contours.size(); i++)
{
Scalar color = Scalar(rng.uniform(0, 255), rng.uniform(0, 255), rng.uniform(0, 255));
drawContours(drawing, contours_poly, i, color, 1, 8, vector<vec4i>(), 0, Point());
rectangle(drawing, boundRect[i].tl(), boundRect[i].br(), color, 2, 8, 0);
//circle(drawing, center[i], (int)radius[i], color, 2, 8, 0);
}
will it cause a problem? |
2017-03-22 07:28:34 -0600
| commented question | Contour fn is not working well and not getting subpixel image by warpaffine fn i have only one karma point.The image is only a small rectangle shaped thing over white background,where the window is full of image |
2017-03-22 06:26:06 -0600
| asked a question | Contour fn is not working well and not getting subpixel image by warpaffine fn There are no errors while compiling
here in the image i need to draw a contour over only a rectangular subpixel image but contours are drawn all over the image and rectangle,moreover subpixel image is not cropped.pls help me with a soln Mat src; Mat src_gray;
int thresh = 100;
int max_thresh = 255;
RNG rng(12345);
/// Function header
void thresh_callback(int, void* );
/** @function main */
int main( int argc, char** argv )
{
/// Load source image and convert it to gray
src = imread( argv[1], 1 );
/// Convert image to gray and blur it
cvtColor( src, src_gray, CV_BGR2GRAY );
blur( src_gray, src_gray, Size(3,3) );
/// Create Window
char* source_window = "Source";
namedWindow( source_window, CV_WINDOW_AUTOSIZE );
imshow( source_window, src );
createTrackbar( " Threshold:", "Source", &thresh, max_thresh, thresh_callback );
thresh_callback( 0, 0 );
// rect is the RotatedRect (I got it from a contour...)
RotatedRect rect;
// matrices we'll use
Mat M, rotated, cropped;
// get angle and size from the bounding box
float angle = rect.angle;
Size rect_size = rect.size;
if (rect.angle < -45.) {
angle += 90.0;
swap(rect_size.width, rect_size.height);
}
// get the rotation matrix
M = getRotationMatrix2D(rect.center, angle, 1.0);
// perform the affine transformation
warpAffine(src, rotated, M, src.size(), INTER_CUBIC);
// crop the resulting image
getRectSubPix(rotated, rect_size, rect.center, cropped);
waitKey(0);
return(0);
}
/** @function thresh_callback */
void thresh_callback(int, void* )
{
Mat threshold_output;
vector<vector<Point> > contours;
vector<Vec4i> hierarchy;
/// Detect edges using Threshold
threshold( src_gray, threshold_output, thresh, 255, THRESH_BINARY );
/// Find contours
findContours( threshold_output, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0) );
/// Approximate contours to polygons + get bounding rects and circles
vector<vector<Point> > contours_poly( contours.size() );
vector<Rect> boundRect( contours.size() );
vector<Point2f>center( contours.size() );
vector<float>radius( contours.size() );
for( int i = 0; i < contours.size(); i++ )
{ approxPolyDP( Mat(contours[i]), contours_poly[i], 3, true );
boundRect[i] = boundingRect( Mat(contours_poly[i]) );
minEnclosingCircle( (Mat)contours_poly[i], center[i], radius[i] );
}
/// Draw polygonal contour + bonding rects + circles
Mat drawing = Mat::zeros( threshold_output.size(), CV_8UC3 );
for( int i = 0; i< contours.size(); i++ )
{
Scalar color = Scalar( rng.uniform(0, 255), rng.uniform(0,255), rng.uniform(0,255) );
drawContours( drawing, contours_poly, i, color, 1, 8, vector<Vec4i>(), 0, Point() );
rectangle( drawing, boundRect[i].tl(), boundRect[i].br(), color, 2, 8, 0 );
circle( drawing, center[i], (int)radius[i], color, 2, 8, 0 );
}
/// Show in a window
namedWindow( "Contours", CV_WINDOW_AUTOSIZE );
imshow( "Contours", drawing );
}
|
2017-03-21 08:27:11 -0600
| commented question | The program to count number of white and black pixels in a binary image is not working.Here I paste the code i used.Please help me with a solution. cv::Mat Q(q.size(), q.type());
cv::threshold(q, Q, 100, 255, cv::THRESH_BINARY); |
2017-03-21 03:42:23 -0600
| commented question | The program to count number of white and black pixels in a binary image is not working.Here I paste the code i used.Please help me with a solution. |
2017-03-21 03:05:19 -0600
| asked a question | The program to count number of white and black pixels in a binary image is not working.Here I paste the code i used.Please help me with a solution. int count_white=0;
int count_black=0;
for (int y = 0; y < image.rows; y++) {
for (int x = 0; x < image.cols; x++) {
if (image.at<cv::Vec3b>(y, x) == cv::Vec3b(255, 255, 255)) {
count_white++;
}
else if (image.at<cv::Vec3b>(y, x) == cv::Vec3b(0, 0, 0)) {
count_black++;
}
}
}
|
2017-03-15 12:57:31 -0600
| asked a question | I have the codes for live video and finding contours separately.I would like to know how both the codes can be stitched together to find contours in a live video CODE FOR LIVE VIDEO #include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main()
{
Mat CameraFrame;
Mat Grey;
VideoCapture cap;
char keypressed;
//Opens the first imaging device.
cap.open(0);
//Check whether user selected camera is opened successfully.
if( !cap.isOpened() )
{
cout << "***Could not initialize capturing...***\n";
return -1;
}
//Create a windows to display camera preview.
namedWindow("Camera Preview", CV_WINDOW_AUTOSIZE);
//Loop infinitely to fetch frame from camera and display it.
for(;;)
{
//Fetch frame from camera.
cap >> CameraFrame;
//Check whether received frame has valid pointer.
if( CameraFrame.empty() )
break;
//Display the received frame
imshow("Camera Preview", CameraFrame);
//Wait for Escape keyevent to exit from loop
keypressed = (char)waitKey(10);
if( keypressed == 27 )
break;
}
//Release the camera interface.
cap.release();
return 0;
}
CODE FOR FINDING CONTOURS #include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
using namespace cv;
using namespace std;
Mat src; Mat src_gray;
int thresh = 100;
int max_thresh = 255;
RNG rng(12345);
/// Function header
void thresh_callback(int, void* );
/** @function main */
int main( int argc, char** argv )
{
/// Load source image and convert it to gray
src = imread( argv[1], 1 );
/// Convert image to gray and blur it
cvtColor( src, src_gray, CV_BGR2GRAY );
blur( src_gray, src_gray, Size(3,3) );
/// Create Window
char* source_window = "Source";
namedWindow( source_window, CV_WINDOW_AUTOSIZE );
imshow( source_window, src );
createTrackbar( " Threshold:", "Source", &thresh, max_thresh, thresh_callback );
thresh_callback( 0, 0 );
waitKey(0);
return(0);
}
/** @function thresh_callback */
void thresh_callback(int, void* )
{
Mat threshold_output;
vector<vector<Point> > contours;
vector<Vec4i> hierarchy;
/// Detect edges using Threshold
threshold( src_gray, threshold_output, thresh, 255, THRESH_BINARY );
/// Find contours
findContours( threshold_output, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0) );
/// Approximate contours to polygons + get bounding rects and circles
vector<vector<Point> > contours_poly( contours.size() );
vector<Rect> boundRect( contours.size() );
vector<Point2f>center( contours.size() );
vector<float>radius( contours.size() );
for( int i = 0; i < contours.size(); i++ )
{ approxPolyDP( Mat(contours[i]), contours_poly[i], 3, true );
boundRect[i] = boundingRect( Mat(contours_poly[i]) );
minEnclosingCircle( (Mat)contours_poly[i], center[i], radius[i] );
}
/// Draw polygonal contour + bonding rects + circles
Mat drawing = Mat::zeros( threshold_output.size(), CV_8UC3 );
for( int i = 0; i< contours.size(); i++ )
{
Scalar color = Scalar( rng.uniform(0, 255), rng.uniform(0,255), rng.uniform(0,255) );
drawContours( drawing, contours_poly, i, color, 1, 8, vector<Vec4i>(), 0, Point() );
rectangle( drawing, boundRect[i].tl(), boundRect[i].br(), color, 2, 8, 0 );
circle( drawing, center[i], (int)radius[i], color, 2, 8, 0 );
}
/// Show in a window
namedWindow( "Contours", CV_WINDOW_AUTOSIZE );
imshow( "Contours", drawing );
}
|
2017-03-15 11:45:37 -0600
| asked a question | I was able to open ids camera the code in visual studio 2012 with opencv 2.4.13,but now it can't open in visual studio 2015 opencv 3.2.0,c++.pls help me with a solution #include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main()
{
Mat CameraFrame;
Mat Grey;
VideoCapture cap;
char keypressed;
//Opens the first imaging device.
cap.open(0);
//Check whether user selected camera is opened successfully.
if( !cap.isOpened() )
{
cout << "***Could not initialize capturing...***\n";
return -1;
}
//Create a windows to display camera preview.
namedWindow("Camera Preview", CV_WINDOW_AUTOSIZE);
//Loop infinitely to fetch frame from camera and display it.
for(;;)
{
//Fetch frame from camera.
cap >> CameraFrame;
//Check whether received frame has valid pointer.
if( CameraFrame.empty() )
break;
//Display the received frame
imshow("Camera Preview", CameraFrame);
//Wait for Escape keyevent to exit from loop
keypressed = (char)waitKey(10);
if( keypressed == 27 )
break;
}
//Release the camera interface.
cap.release();
|
2017-03-11 12:21:55 -0600
| received badge | ● Enthusiast
|
2017-03-10 10:06:47 -0600
| commented question | Hi, my project is to detect defects in solar panels running through a conveyor belt in a real time basis .Pls help me with a method to track down the solar panels and an optimum method to find the defects. Surface defects such as cracks just for demo purpose in college project. It's to compare good one with faulty ones. |
2017-03-10 05:10:57 -0600
| commented question | Hi, my project is to detect defects in solar panels running through a conveyor belt in a real time basis .Pls help me with a method to track down the solar panels and an optimum method to find the defects. Sorry.I just asked for the steps to do in the opencv way.That's all. |
2017-03-09 08:01:02 -0600
| asked a question | Hi, my project is to detect defects in solar panels running through a conveyor belt in a real time basis .Pls help me with a method to track down the solar panels and an optimum method to find the defects. The project is to inspect solar panels ,passing through a conveyor belt,to find surface defects.The problem now I face is the alignment of solar panel in the live video,moreover,the method to find the defects.I use opencv3.2 in visual studio 2015 c++.Now I have the code for the live video. |
2017-03-06 22:16:23 -0600
| asked a question | i'm doing a project where i need software triggering for the camera to capture image in every 2 seconds only for entire program. My project is to detect defects in a solar panel,where solar panels are passed through a conveyor belt on a real time basis.When defective solar panels are found they are rejected . As my camera takes more than 20 frames a second, I don't need that.Instead I need my program to work in the way to capture one single frame at every 2 seconds only.I use opencv3.2 c++ .Here I cite the basic program for a live video .Pls help me with a solution.
I use ids usb3.0 camera. #include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main()
{
Mat CameraFrame;
Mat Grey;
VideoCapture cap;
char keypressed;
//Opens the first imaging device.
cap.open(0);
//Check whether user selected camera is opened successfully.
if( !cap.isOpened() )
{
cout << "***Could not initialize capturing...***\n";
return -1;
}
//Create a windows to display camera preview.
namedWindow("Camera Preview", CV_WINDOW_AUTOSIZE);
//Loop infinitely to fetch frame from camera and display it.
for(;;)
{
//Fetch frame from camera.
cap >> CameraFrame;
//Check whether received frame has valid pointer.
if( CameraFrame.empty() )
break;
//Display the received frame
imshow("Camera Preview", CameraFrame);
//Wait for Escape keyevent to exit from loop
keypressed = (char)waitKey(10);
if( keypressed == 27 )
break;
}
//Release the camera interface.
cap.release();
return 0;
}
|
2017-02-01 03:43:53 -0600
| commented question | My USB3.0 IDS camera cannot opened with opencv2.4.12.Please help me with a solution. This is the code i used to open USB3.0 IDS camera in opencv. #include<opencv2/opencv.hpp>
#include<iostream>
using namespace cv;
using namespace std;
int main()
{
Mat CameraFrame;
Mat Grey;
VideoCapture cap;
char keypressed;
cap.open(0);
if( !cap.isOpened() )
{cout << "***Could not initialize capturing...***\n";
return -1;}
namedWindow("Camera Preview", CV_WINDOW_AUTOSIZE);
for(;;)
{cap >> CameraFrame;
if( CameraFrame.empty() )
break;
imshow("Camera Preview", CameraFrame);
keypressed = (char)waitKey(10);
if( keypressed == 27 )
break;}
cap.release();
return 0;}
|
2017-02-01 03:30:09 -0600
| commented question | My USB3.0 IDS cannot opened with opencv2.4.12.Please help me with a solution. Thanks buddy.your solution helped me to solve the problem.Thanks again |
2017-02-01 03:27:13 -0600
| commented question | My USB3.0 IDS camera cannot opened with opencv2.4.12.Please help me with a solution. feel pleasure to be commented.thanks for coming.just now the problem was solved.Thank U again |
2017-02-01 02:36:16 -0600
| asked a question | My USB3.0 IDS camera cannot opened with opencv2.4.12.Please help me with a solution. The camera is not opening while c++ program code for video read is executed.I am in the middle of a college project,please help me with a solution |
2017-01-21 04:56:57 -0600
| asked a question | My USB3.0 IDS cannot opened with opencv2.4.12.Please help me with a solution. I am using opencv2.4.12 for my college project.
I am a new user to opencv and programs.
The camera is USB3.0 uEye GigE vision camera.
Please help me with a solution. |