Giúp khắc phục lỗi khi chạy chương trình C++ với OpenCV
Chào cả nhà, mình đang viết một chương trình đồng hồ nhắc nhở, cứ đến 1 giờ nào đó lại đưa ra một nhắc nhở tương ứng, tuy nhiên bị mắc ở đoạn truyền giá trị vào hàm, hàm được mình viết như sau:
int Displaying_Big_End(Mat image, char* window_name, RNG, char* keyWord) {
Size textsize = getTextSize(keyWord, FONT_HERSHEY_COMPLEX, 3, 5, 0);
Point org((window_width - textsize.width) / 2, (window_height - textsize.height) / 2);
int lineType = 8;
Mat image2;
for (int i = 0; i < 255; i += 2) {
image2 = image - Scalar::all(i);
putText(image2, keyWord, org, FONT_HERSHEY_COMPLEX, 3,
Scalar(i, i, 255), 5, lineType);
imshow(window_name, image2);
if (waitKey(DELAY) >= 0) {
return -1;
}
}
return 0;
}
Trong đó window_name
và keyWord
cùng một kiểu. Khi gọi đến hàm mình gọi như thế này:
int notice(void) {
int c;
char keyString[] = "Lunch!";
/// Start creating a window
char window_name[] = "WARNING!!!";
/// Also create a random object (RNG)
RNG rng(0xFFFFFFFF);
/// Initialize a matrix filled with zeros
Mat image = Mat::zeros(window_height, window_width, CV_8UC3);
/// Show it in a window during DELAY ms
imshow(window_name, image);
waitKey(DELAY);
/// Displaying the big end!
c = Displaying_Big_End(image, window_name, rng, keyString);
if (c != 0) return 0;
waitKey(0);
return 0;
}
Thì không hiểu sao VS lại báo lỗi:
error C2660: ‘Displaying_Big_End’ : function does not take 4 arguments
Chương trình này sử dụng OpenCV và các kiểu dữ liệu với các hàm của OpenCV là hoàn toàn hợp lệ.
Rõ ràng window_name
và keyWord
cùng 1 kiểu trong mọi tình huống và nếu bỏ keyWord
đi mọi thứ vẫn chạy ngon lành@@. Mong được mọi người giúp đỡ ạ
Thêm dòng prototype ngay trước hàm
notice
xem.Có khi hàm
notice
nó không biết được cấu trúc của hàmDisplaying_Big_End
có 4 tham số. Mà nó đang gọi tới một hàm nào đó cũng có tênDisplaying_Big_End
, mà hàm này chỉ có 3 tham số.P/S: Google một phát ra ngay, hàm
Displaying_Big_End
mặc định của OpenCV chỉ có 3 tham số.http://docs.opencv.org/trunk/doc/tutorials/core/random_generator_and_text/random_generator_and_text.html
Nếu vậy thì @World_Class coi lại code của mình đi. Hàm có 3 tham số và hàm có 4 tham số là 2 hàm khác nhau rồi.
P/S2: Mà @World_Class đặt câu hỏi rất rõ ràng, cụ thể, có nói rõ các giải pháp. Đạt rất thích câu hỏi dạng này.
Bingo!!! Cảm ơn anh Đạt siêu siêu nhiều . Hàm notice em để trước Display_Big_End, Hàm main em để cuối cùng mới gọi notice vậy mà cũng cần để prototype Display_Big_End trước nữa, em sẽ để ý nhiều hơn
Display_Big_End không phải là hàm chuẩn của OpenCV anh ạ , nó là 1 ví dụ của OpenCV nên em lấy vào dùng cho chương trình cảnh báo của mình thôi ạ ^^, cải biến bằng cách thêm tham số truyền vào xâu kí tự muốn cảnh báo thôi ạ .
Kinh nghiệm phiêu lưu không biết bao nhiêu diễn đàn và chức to nhất từng làm là SuperMod chứ không phải dạng vừa đâu ạ
Đùa 1 tí chứ thực ra cũng học ở các bài của anh 1 phần đấy ạ
À, ra thế, anh cũng nghi nghi, tại cái tên hàm trông kỳ cục quá. Thường tên hàm của C++ sẽ ở dạng camel.
Chứ không ở dạng
C thì có dạng
Wow, hứa hẹn đây. Anh sẽ cố gắng xây dựng diễn đàn thật tốt để giữ chân em lại cho tới ngày em lên Moderator nhé. diễn đàn chỉ có Moderator thôi
Chuẩn quá anh ạ, em cũng mới làm việc với OpenCV thôi, mà thực ra là mới với C++ luôn, lúc trước chỉ biết C, còn thực tế là đầu tư và xác định làm với Java, nhưng cái duyên vs C++ đến nên đang đau đầu với nó anh ạ
Thực ra với việc lập trình em chả có tài cán gì, em được cái nhiều ý tưởng và dám nói ra nên m.người tưởng khủng lắm, thực ra là cứ liều mà làm thôi anh ạ , em tự thấy mình tốt ở khả năng làm lãnh đạo, quản lý hơn ^^.
Ngay lúc anh ra cái video nói về diễn đàn (mà so sánh vs FB và voz ấy), có mail gửi về em đã chúc diễn đàn sớm trở thành stackoverflow của VN , cứ đà này việc đó trong tầm tay thôi ạ!
Em thì lúc nào cũng sẽ ủng hộ diễn đàn hết sức, vì trước đó muốn có 1 sân chơi (sân học thì đúng hơn ^^) để sinh hoạt mà không có, mấy forum tiếng Anh tốt nhưng mình chưa siêu tiếng Anh đến thế@@, chả biết sao tự dưng tìm tài liệu C++ để học, tìm được đống video của anh trên Youtube, vào profile của anh ms biết đến diễn đàn này, vài ngày tham gia thì thấy đúng chỗ mình cần tìm rồi! So với bao nhiêu cao thủ trên này em còn phải học nhiều nhiều lắm
Hehe, thấy em nói vậy anh rất vui. Có lẽ topic này đã giải quyết được vấn đề ban đầu của nó, anh để nó tự động close sau 1h nhé.
This topic was automatically closed after 60 minutes. New replies are no longer allowed.