PIC Vietnam

Go Back   PIC Vietnam > Robotics > Xử lý ảnh

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Bài Trong Ngày Vi điều khiển

Xử lý ảnh Các thuật toán xử lý ảnh dùng trong robot

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 07-06-2013, 05:49 PM   #1
nupakachi
Đệ tử 1 túi
 
Tham gia ngày: Jan 2013
Bài gửi: 21
:
cầu cứu nhận diện biển số xe

các pro giải thích giùm em với.càng kỹ càng tốt.Em đang rất rất cần.cảm ơn rất nhiều
Image<Bgr, Byte> img = new Image<Bgr, Byte>(image); // Ảnh đầu vào đưa về dạng Image;

Image<Gray, Byte> image_gray = img.Convert<Gray, Byte>();// Hàm chuyển ảnh xám;

image_gray = image_gray.SmoothGaussian(5);
image_gray = image_gray.SmoothMedian(5);
Image<Gray, Byte> blur = image_gray.SmoothBlur(5, 5);// Tiến hành giảm nhiễu;

CvInvoke.cvSobel(blur, blur, 1, 0, 3);//Phát hiện biên dọc;

CvInvoke.cvThreshold(blur, blur, 0, 255, Emgu.CV.CvEnum.THRESH.CV_THRESH_OTSU);//Phân ngưỡng Otsu

CvInvoke.cvErode(blur, blur, IntPtr.Zero, 1);
CvInvoke.cvDilate(blur, blur, IntPtr.Zero, 2);// Erode và dilate ảnh sau phân ngưỡng

StructuringElementEx element = new StructuringElementEx(17, 3, 8, 2, Emgu.CV.CvEnum.CV_ELEMENT_SHAPE.CV_SHAPE_RECT);
CvInvoke.cvMorphologyEx(blur, blur, IntPtr.Zero, element, Emgu.CV.CvEnum.CV_MORPH_OP.CV_MOP_CLOSE, 1);// Thuật toán Closing.
nupakachi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-08-2014, 11:53 AM   #2
vohungvi
Nhập môn đệ tử
 
Tham gia ngày: Nov 2013
Bài gửi: 4
:
Giải thích cái thuật toán của OpenCV trong code bạn đưa hả? Thấy có cmt giải thích trong đó rồi mà, giải thích gì nữa bạn?
vohungvi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 29-08-2014, 12:14 PM   #3
vohungvi
Nhập môn đệ tử
 
Tham gia ngày: Nov 2013
Bài gửi: 4
:
Cho bạn cái hàm để bạn tham khảo

int FindPlate()
{
Mat src1 = imread("images\\BienSo.jpg", CV_LOAD_IMAGE_COLOR);
if(!src1.data)
return 0;
Mat src2 = src1.clone(); // copy anh
Mat gray, binary;
cvtColor(src1, gray, CV_BGR2GRAY);
threshold(gray, binary, 100, 255, CV_THRESH_BINARY);
imshow("Anh nhi phan goc", binary);
Mat morpho;
Mat element = getStructuringElement(MORPH_CROSS, Size(3,3), Point(1,1));
erode(binary, morpho, element, Point(-1,-1), 3);
imshow("Anh sau khi thuc hien phep gian no", morpho);

vector<vector<Point> > contours1;
findContours(binary, contours1, CV_RETR_LIST, CV_CHAIN_APPROX_NONE );
for(size_t i = 0; i < contours1.size(); i++)
{
Rect r = boundingRect(contours1[i]);
if(r.width/(double)r.height > 3.5f && r.width/(double)r.height < 4.5f)
rectangle(src1, r, Scalar(0, 0, 255), 2, 8, 0);
else
rectangle(src1, r, Scalar(0, 255, 0), 1, 8, 0);
}
imshow("Ket qua phat hien truoc phep gian no", src1);


vector<vector<Point> > contours2;
findContours(morpho, contours2, CV_RETR_LIST, CV_CHAIN_APPROX_NONE );
for(size_t i = 0; i < contours2.size(); i++)
{
Rect r = boundingRect(contours2[i]);
if(r.width/(double)r.height > 3.5f && r.width/(double)r.height < 4.5f)
rectangle(src2, r, Scalar(0, 0, 255), 2, 8, 0);
else
rectangle(src2, r, Scalar(0, 255, 0), 1, 8, 0);
}
imshow("Ket qua phat hien sau khi phep gian no", src2);
}
vohungvi vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 07-06-2019, 03:48 PM   #4
vnmember
Nhập môn đệ tử
 
Tham gia ngày: Jun 2014
Bài gửi: 4
:
bạn có thể hướng dẫn cụ thể hơn một chút được không mình là người mới, cảm ơn bạn
__________________
https://nhacdj.com.vn/ Nghe Nhạc DJ Với Hàng Triệu Bản Nhạc DJ , Nonstop Việt Mix và MV Bản Quyền Chất Lượng Cao, Tương Thích Tốt Trên Các Thiết Bị Di Động Nghe & Download Nhạc DJ, Nonstop Dù Bạn Ở Bất Cứ Đâu.
vnmember vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lời


Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 08:30 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam