2012-07-15 25 views
5

Tôi có hình ảnh có hình ảnh 400x400 để xác định các thành phần khác nhau từ nó. Nhưng khi tôi cố gắng xác định các thành phần sử dụng phần lớn thời gian, nó không cung cấp câu trả lời đúng. Vì vậy, tôi cần phải biết liệu có một số loại phương pháp trong javacv hoặc opencv để cải thiện chất lượng của hình ảnh hoặc tăng kích thước của hình ảnh mà không ảnh hưởng đến chất lượng của nó?Làm thế nào để cải thiện chất lượng hình ảnh trước khi xử lý hình ảnh bắt đầu trong javacv hoặc opencv?

Đây là hình ảnh mẫu mà tôi sử dụng. (Đây là kích thước tối đa mà tôi có thể nhận được và tôi không thể sử dụng bất kỳ phần mềm chỉnh sửa ảnh trong dự án, vì nó tạo động hình ảnh.)

enter image description here

Trong xử lý hình ảnh của tôi, tôi cần phải xác định hình vuông và hình chữ nhật kết nối các ô vuông đó. Và đặc biệt tôi cần phải có chiều rộng và chiều cao của những người sử dụng các giá trị pixel.

+0

Bạn có chắc chắn không có cách nào để có được hình ảnh đẹp hơn nhiều không? –

+0

Có Tôi đã tạo hình ảnh này bằng gói kabeja.Vì vậy, đó là chất lượng tối đa mà tôi có thể nhận được. Tôi cần phải cải thiện chất lượng của hình ảnh này bằng cách sử dụng phương pháp javacv. Tôi cố gắng tăng kích thước của hình ảnh và sau đó tôi hy vọng nó có thể sử dụng các kỹ thuật xử lý hình ảnh trích xuất thông tin. –

+0

@Abid là nó có thể tăng kích thước của hình ảnh trong opencv? Tôi có nghĩa là để quy mô hình ảnh? –

Trả lời

3

Bạn có thể chia tỷ lệ thành bất kỳ kích thước nào, nếu bạn có thể vector hóa nó ... và trong trường hợp của bạn, việc thực hiện là khá đơn giản vì bạn có một số đối tượng hình học đơn giản trong hình ảnh.

Vì vậy, theo quan điểm của tôi cách tiếp cận của bạn nên được như thế này:

  1. phát hiện cạnh trong hình ảnh với một ngưỡng cao (như bạn có các đối tượng rất khác biệt)
  2. vectorize họ
  3. quy mô họ bất kỳ kích thước nào

Bạn cũng nên xem liên kết sau: Increasing camera capture resolution in OpenCV.

+0

Mặc dù trước tiên, hãy tăng độ tương phản và làm sắc nét. Điều đó sẽ ngay lập tức đưa ra các cạnh. Để tăng cường cạnh, lấy các cạnh được phát hiện và làm tối chúng và thậm chí cả các điểm ảnh xung quanh của chúng bằng một bộ lọc tối thiểu. Điều đó nên làm các thủ thuật trong việc thiết lập ranh giới xác thực rõ ràng. –

2

Nếu bạn gắn bó với xử lý hình ảnh, cách dễ nhất để thực hiện là áp dụng equalizeHist(). Điều này sẽ làm tăng độ tương phản và sẽ cải thiện các bước tiếp theo.

Nhưng, và đây là một biiiig 'nhưng', tại sao bạn làm điều đó? Chỉ cần đọc bài đăng này, tôi đã thấy một giải pháp khác và một google nhanh chóng đã chứng minh tôi là đúng:

Kabeja là một thư viện Java để phân tích, xử lý và chuyển đổi định dạng DXF của Autodesk. Bạn có thể sử dụng Kabeja từ CommandLine hoặc nhúng vào ứng dụng của bạn. Tất cả dữ liệu được phân tích cú pháp đều có thể truy cập được bằng API giống như giống DOM.

Điều đó có nghĩa là bạn có thể trích xuất trực tiếp tất cả dữ liệu bạn muốn từ hình ảnh đó ở định dạng văn bản. Có lẽ một cái gì đó giống như "ở vị trí x, y có một bóng bán dẫn, hoặc bất cứ điều gì." Vì vậy, lý do tại sao bạn sẽ hiển thị tệp đó vào một hình ảnh, sau đó phân tích hình ảnh đó để trích xuất các thành phần?

Nếu bạn làm điều đó cho trường học (Tôi biết rằng nhiều dự án trường học như thế này) tôi khuyên bạn nên tìm một vấn đề thực sự để giải quyết, và đề xuất nó cho giáo viên của bạn. Bạn sẽ hạnh phúc hơn để làm điều gì đó không hoàn toàn vô nghĩa.

2

vector hóa hình ảnh là tùy chọn tốt nhất tôi đoán theo đề xuất của mocap.
bạn cũng có thể sử dụng các công cụ nâng cao như mài, bão hòa, v.v.

Các vấn đề liên quan