Bất cứ ai có thể mô tả làm thế nào tôi có thể thực hiện SWT trong python bằng cách sử dụng opencv hoặc simplecv?Thực hiện chuyển đổi chiều rộng đột quỵ (SWT) (Python)
Trả lời
Ok như vậy ở đây đi:
Các liên kết có chi tiết về việc thực hiện với các liên kết tải mã ở dưới cùng: SWT
Vì lợi ích của sự hoàn chỉnh, cũng đề cập rằng SWT hoặc Stroke Width Chuyển đổi được được đưa ra bởi Epshtein và những người khác trong năm 2010 và đã trở thành một trong những phương pháp phát hiện văn bản thành công nhất cho tới nay. Nó không sử dụng máy học hoặc các bài kiểm tra phức tạp. Về cơ bản sau khi phát hiện cạnh Canny trên hình ảnh đầu vào, nó tính toán độ dày của mỗi đột quỵ tạo nên các đối tượng trong hình ảnh. Vì văn bản có nét dày đặc đều, đây có thể là một tính năng nhận dạng mạnh mẽ.
Thực hiện được đưa ra trong liên kết đang sử dụng C++, OpenCV và thư viện Boost mà chúng sử dụng cho các lần truyền tải biểu đồ được kết nối, v.v. sau khi tính toán bước SWT. Cá nhân tôi đã thử nghiệm nó trên Ubuntu và nó hoạt động khá tốt (và hiệu quả), mặc dù độ chính xác là không chính xác.
Cảm ơn rất nhiều, một lần nữa – pylover
tôi thực hiện một cái gì đó tương tự như khoảng cách chuyển đổi dựa SWT được mô tả trong 'DETECTION TEXT mạnh mẽ trong HÌNH ẢNH TỰ NHIÊN VỚI KHU VỰC extremal tối đa ỔN ĐỊNH EDGE-NÂNG CAO bởi Huizhong Chen, Sam S. Tsai, Georg Schroth, David M. Chen, Radek Grzeszczuk, Bernd Girod '.
Nó không giống như mô tả trong bài báo mà là một xấp xỉ gần đúng phục vụ cho mục đích của tôi. Tôi nên chia sẻ nó để ai đó có thể thấy nó hữu ích (và chỉ ra bất kỳ lỗi/cải tiến nào). Nó được thực hiện trong C++ và sử dụng OpenCV.
// bw8u : we want to calculate the SWT of this. NOTE: Its background pixels are 0 and forground pixels are 1 (not 255!)
Mat bw32f, swt32f, kernel;
double min, max;
int strokeRadius;
bw8u.convertTo(bw32f, CV_32F); // format conversion for multiplication
distanceTransform(bw8u, swt32f, CV_DIST_L2, 5); // distance transform
minMaxLoc(swt32f, NULL, &max); // find max
strokeRadius = (int)ceil(max); // half the max stroke width
kernel = getStructuringElement(MORPH_RECT, Size(3, 3)); // 3x3 kernel used to select 8-connected neighbors
for (int j = 0; j < strokeRadius; j++)
{
dilate(swt32f, swt32f, kernel); // assign the max in 3x3 neighborhood to each center pixel
swt32f = swt32f.mul(bw32f); // apply mask to restore original shape and to avoid unnecessary max propogation
}
// swt32f : resulting SWT image
Cực đại địa phương của Phép biến đổi khoảng cách sẽ mang lại độ rộng nửa nét. Đó là một quan sát tốt đẹp, mặc dù một số giấy tờ trong 2011-2012 sử dụng điều này chính xác kết hợp với các thiết bị dò vùng như MSER. – AruniRC
@AruniRC Bài báo trong liên kết đã cho cung cấp chi tiết về phương pháp này. Trên thực tế điều này nửa chiều rộng chiều rộng không phải là quan sát của tôi. Thực sự xin lỗi nếu viết của tôi làm cho nó trông giống như nó là của tôi. Tất cả các tín dụng này nên đi đến các tác giả của bài báo này. – dhanushka
Ồ, tôi không có ý đó. Chỉ là một quan sát. Và xin lỗi, lỗi của tôi vì không thấy liên kết giấy ICIP trước đó. Trong thực tế, việc sử dụng phép biến đổi khoảng cách để có được nửa chiều rộng là dễ dàng hơn và thanh lịch thực hiện khôn ngoan. Cá nhân, tôi đã sử dụng một toán tử Laplacian để lấy extrema địa phương của dist. xuyên. hình ảnh, nhưng cách làm giãn của bạn là sạch hơn. – AruniRC
- 1. Android: đột quỵ trong một hình dạng tạo ra một lề của chiều rộng đột quỵ
- 2. Làm thế nào để làm cho chiều rộng đột quỵ miễn dịch với ma trận chuyển đổi hiện tại
- 3. Vẽ biểu đồ có chiều rộng đột quỵ 1 pixel trong bản vẽ khổ A4
- 4. Tại sao chiều rộng đột quỵ SVG: 1 tạo đường trong suốt?
- 5. chiều rộng đột quỵ kiểu nội tuyến cho trục tạo nhãn đánh dấu in đậm
- 6. Tại sao đột quỵ của CAShapeLayer mở rộng ra khỏi khung?
- 7. svg và chương trình đột quỵ
- 8. Dòng UIBezierPath đột quỵ 1px và điền hình chữ nhật có chiều rộng 1px - các kết quả khác nhau.
- 9. Đột quỵ đường đôi trong html5 canvas
- 10. chiều rộng/chiều cao sau khi chuyển đổi
- 11. Đột quỵ ứng dụng đột ngột - Lỗi động cơ gây tử vong (7A0BC59E) (80131506)
- 12. Chuyển đổi chuỗi chiều rộng css thành số thường là
- 13. Áp dụng kết cấu để đột quỵ CGContextStrokePath
- 14. CABasicAnimation - Đặt vị trí đột quỵ bắt đầu
- 15. Tạo văn bản Đột quỵ cho iPhone không dây
- 16. Áp dụng đột quỵ vào một khối chữ trong WPF
- 17. Cách trích xuất đột quỵ từ ký tự Trung Quốc
- 18. HTML5 Canvas đột quỵ không chống răng cưa
- 19. Đường nét không thể đột quỵ sau khi điền vào
- 20. jQuery - Phát hiện thay đổi chiều rộng cửa sổ nhưng không thay đổi chiều cao
- 21. Chuyển đổi chiều rộng từ phần trăm pixel
- 22. Làm thế nào để ngăn chặn một điểm đánh dấu SVG (đầu mũi tên) để kế thừa chiều rộng đột quỵ của đường dẫn?
- 23. Thực hành chiều rộng cột Bảng HTML
- 24. Stroke Width Transform (SWT) thực hiện (Java, C# ...)
- 25. Ứng dụng Facebook thực tế chiều rộng
- 26. Thực hiện nút chuyển đổi iPhone
- 27. Thay đổi chiều rộng Spinner DropDown
- 28. Thiết auto-chiều cao/chiều rộng cho chuyển đổi Jpeg từ PDF sử dụng GhostScript
- 29. Imagemagick: Chuyển đổi thành chiều rộng cố định, chiều cao tỷ lệ
- 30. Chuyển đổi chiều rộng/chiều cao hình ảnh không hoạt động
nếu bạn đang tìm kiếm triển khai giấy, bạn có thể thêm liên kết vào bài báo đó hoặc ít nhất cung cấp liên kết đến SWT là gì. –
có thể hữu ích: http://stackoverflow.com/questions/4837124/stroke-width-transform-swt-implementation-java-c –
tôi đã thấy chúng, nhưng liên kết bị hỏng và không có mã hoặc mã psudo nào có sẵn . – pylover