Trong đoạn mã sau tôi muốn sử dụng chức năng dilate
nhưng tôi không biết cách đúc một lớp Mat
thành InputArray
và OutputArray
. Bạn có thể giúp tôi được không?Giúp sử dụng chức năng giãn nở OpenCV
Sử dụng chức năng nguyên mẫu này:
void dilate(InputArray src, OutputArray dst, InputArray kernel, Point anchor=Point(-1,-1), int iterations=1, int borderType=BORDER_CONSTANT, const Scalar& borderValue=morphologyDefaultBorderValue())
Dưới đây là mã của tôi:
#include "opencv2/opencv.hpp"
using namespace cv;
int main(int, char**)
{
Mat edges;
VideoCapture cap(0); // open the default camera
if(!cap.isOpened()) // check if we succeeded
return -1;
for(;;)
{
Mat frame;
cap >> frame; // get a new frame from camera
cvtColor(frame, edges, CV_BGR2GRAY);
GaussianBlur(edges, edges, Size(7,7), 1.5, 1.5);
//dilate(edges,edges,NULL);
Canny(edges, edges, 0, 30, 3);
imshow("edges", frame);
if(waitKey(30) >= 0) break;
}
// the camera will be deinitialized automatically in VideoCapture destructor
return 0;
}
Bạn có thể giải thích điều cuối cùng không? – Antonio
Tài liệu của hàm này giải thích rõ. – karlphillip
-1, nó có hiệu quả trong tài liệu, nhưng bạn không liên kết nó và như vậy câu trả lời không đáp ứng tiêu chuẩn Stack Overflow. Được liên kết từ: http://stackoverflow.com/questions/how-to-answer -> http://msmvps.com/blogs/jon_skeet/archive/2009/02/17/answering-technical-questions-helpfully.aspx ' Tuy nhiên, mã mà không có giải thích hiếm khi hữu ích. Ít nhất hãy cung cấp một hoặc hai câu để giải thích những gì đang diễn ra.' – Antonio