Java DIP - Thư viện nguồn mở

Trong chương này, chúng ta tìm hiểu một số thư viện xử lý ảnh miễn phí được sử dụng rộng rãi và có thể dễ dàng tích hợp trong dự án. Các thư viện này bao gồm -

  • ImageJ
  • Fiji
  • Hình ảnh Commons
  • ImageMagick
  • Endrov
  • LeadTools
  • OpenCv

ImageJ

ImageJ là một chương trình xử lý hình ảnh Java miền công cộng được lấy cảm hứng từ NIH Image cho Macintosh. Nó có thể hiển thị, chỉnh sửa, phân tích, xử lý, lưu và in hình ảnh 8 bit, 16 bit và 32 bit.

Một số tính năng cơ bản của ImageJ được mô tả dưới đây:

Sr.No. Sự miêu tả yếu tố
1

Runs Everywhere

ImageJ được viết bằng Java, cho phép nó chạy trên Linux, Mac OS X và Windows, ở cả hai chế độ 32-bit và 64-bit.

2

Open Source

ImageJ và mã nguồn Java của nó có sẵn miễn phí và trong miền công cộng.

3

Toolkit

Sử dụng ImageJ như một bộ công cụ xử lý hình ảnh (thư viện lớp) để phát triển các applet, servlet hoặc các ứng dụng.

4

Data Types

Thang màu xám 8 bit hoặc màu được lập chỉ mục, số nguyên không dấu 16 bit, dấu phẩy động 32 bit và màu RGB.

5

File Formats

Mở và lưu GIF, JPEG, BMP, PNG, PGM, FITS và ASCII. Mở DICOM. Mở TIFF, GIF, JPEG, DICOM và dữ liệu thô bằng URL.

6

Selections

Tạo các vùng chọn hình chữ nhật, hình elip hoặc không đều. Tạo các lựa chọn đường và điểm.

7

Image Enhancement

Hỗ trợ làm mịn, làm sắc nét, phát hiện cạnh, lọc trung vị và tạo ngưỡng trên cả hình ảnh màu RGB và thang độ xám 8 bit.

số 8

Color Processing

Chia hình ảnh màu 32 bit thành các thành phần RGB hoặc HSV. Hợp nhất các thành phần 8-bit thành một hình ảnh màu.

Fiji

Fiji là một gói xử lý hình ảnh. Nó có thể được mô tả như một bản phân phối của ImageJ (và ImageJ2) cùng với Java, Java3D và rất nhiều plug-in được tổ chức thành một cấu trúc menu nhất quán. Fiji so sánh với ImageJ vì Ubuntu so với Linux.

Ngoài các tính năng cơ bản của ImageJ, một số tính năng nâng cao của Fiji được mô tả bên dưới:

Sr.No. Sự miêu tả yếu tố
1

Registering 3D images

Điều này liên quan đến việc căn chỉnh đàn hồi và chỉnh sửa, trích xuất tính năng, bộ ổn định hình ảnh, v.v.

2

Segmenting images

Nó cung cấp hơn 35 loại phân đoạn.

3

Useful keyboard short cuts

Fuji có rất nhiều phím tắt.

4

Scripting

Cho phép tạo tập lệnh với Macro, trong JavaScript, JRuby, Jython, Clojure và Beanshell.

5

Developing Plug-ins

Sử dụng Trình chỉnh sửa tập lệnh để bắt đầu phát triển các trình cắm và sau đó chạy các trình cắm thêm.

6

ImageJ Tricks

ImageJ rất dễ sử dụng, nhưng đôi khi bạn mong muốn một số chức năng thực sự được triển khai, nhưng bạn không biết cách kích hoạt.

Hình ảnh Commons

Apache Commons Imaging, trước đây được gọi là Apache Commons Sanselan, là một thư viện đọc và ghi nhiều định dạng hình ảnh khác nhau, bao gồm phân tích nhanh thông tin hình ảnh như (kích thước, màu sắc, không gian, hồ sơ ICC, v.v.) và dữ liệu meta.

Một số tính năng cơ bản của ImageJ được mô tả dưới đây:

Sr.No. Sự miêu tả yếu tố
1

Java

Apache Commons Imaging được viết bằng Java thuần túy 100%. Nó thực thi trên mọi JVM và bất kỳ nền tảng nào mà không cần sửa đổi.

2

Image Formats

Nó đọc và ghi nhiều định dạng hình ảnh, và hỗ trợ một số biến thể và mã hóa mà tất cả hoặc hầu hết các thư viện khác bỏ sót.

3

Metadata support

Nó hỗ trợ đọc và ghi nhiều loại dữ liệu meta theo cách có cấu trúc, bao gồm cả dữ liệu meta EXIF.

4

Network Friendly

Nó thân thiện với mạng. Commons Imaging chỉ đọc dữ liệu mà nó cần và lưu vào bộ nhớ cache những gì đã đọc để nó không quá nặng trên mạng.

5

Easy to use

Nó được thiết kế để rất dễ sử dụng. Nó có một giao diện đơn giản, sạch sẽ. Hầu hết các hoạt động là một cuộc gọi phương thức Hình ảnh duy nhất.

6

Transparent

Commons Imaging nhằm mục đích minh bạch. Không có bộ đệm ẩn để xử lý, không có bộ nhớ gốc để giải phóng, không có chuỗi nền.

7

Open Source

Nó là Phần mềm miễn phí / Nguồn mở. Nó có sẵn theo Giấy phép Phần mềm Apache.

số 8

Color Conversions

Lớp ColorConversions cung cấp các phương thức để chuyển đổi giữa các không gian màu sau - CIE-L * CH, CIE-L * ab, CIE-L * uv, CMY, CMYK, HSL, HSV, Hunter-Lab, RGB, XYZ và YXY.

ImageMagick

ImageMagick là một bộ phần mềm để tạo, chỉnh sửa, soạn hoặc chuyển đổi hình ảnh bitmap. Nó có thể đọc và ghi hình ảnh ở hơn 100 định dạng bao gồm DPX, EXR, GIF, JPEG, JPEG-2000, PDF, PNG, Postscript, SVG và TIFF. Sử dụng ImageMagick để thay đổi kích thước, lật, phản chiếu, xoay, bóp méo, cắt và biến đổi hình ảnh, điều chỉnh màu sắc hình ảnh, áp dụng các hiệu ứng đặc biệt khác nhau hoặc vẽ văn bản, đường thẳng, đa giác, hình elip và đường cong Bezier.

Một số tính năng cơ bản của ImageMagick được mô tả bên dưới:

Sr.No. Sự miêu tả yếu tố
1

Format conversion

Nó chuyển đổi một hình ảnh từ định dạng này sang định dạng khác (ví dụ: PNG sang JPEG).

2

Transform

Nó có thể thay đổi kích thước, xoay, cắt, lật hoặc cắt một hình ảnh.

3

Transparency

Nó làm cho các phần của một hình ảnh trở nên vô hình.

4

Draw

Nó thêm hình dạng hoặc văn bản vào hình ảnh.

5

Decorate

Nó thêm một đường viền hoặc khung cho hình ảnh.

6

Special effects

Nó có thể làm mờ, làm sắc nét, ngưỡng hoặc tô màu cho hình ảnh.

7

Animation

Nó có thể tạo chuỗi ảnh động GIF từ một nhóm hình ảnh.

số 8

Composite

Nó có thể chồng lên một hình ảnh khác.

9

Morphology of shapes

Nó trích xuất các tính năng, mô tả hình dạng và nhận dạng các mẫu trong hình ảnh.

10

Encipher or decipher an image

Nó chuyển đổi hình ảnh bình thường thành vô nghĩa khó hiểu và quay lại một lần nữa.

Endrov

Endrov là một chương trình phân tích hình ảnh đa mục đích. Nó được viết độc lập và được thiết kế để giải quyết nhiều thiếu sót của các phần mềm miễn phí khác và nhiều gói thương mại.

Một số tính năng cơ bản của Endrov được mô tả dưới đây:

Sr.No. Sự miêu tả yếu tố
1

View data

Nó xem dữ liệu, ở dạng 2D và 3D. Được thiết kế để xử lý các lược đồ dữ liệu 4D phức tạp và số lượng kênh không giới hạn, trong đó mỗi kênh có thể có độ phân giải X, Y và Z riêng.

2

Annotate your images

Nó chú thích hình ảnh của bạn, tự động hoặc bằng tay, để hiểu chúng và nhận số liệu thống kê.

3

Undo and Redo

Nó có thể hoàn tác và làm lại cho tất cả các hoạt động.

4

Lazy Evaluation

Nó được thiết kế từ mặt đất để xử lý các bộ ảnh lớn. Endrov sử dụng đánh giá lười biếng, một khái niệm hầu như chỉ có trong các ngôn ngữ lập trình nghiên cứu.

5

Scripting language

Nó hỗ trợ ngôn ngữ kịch bản đồ họa, cũng như kịch bản truyền thống.

6

Java

Được viết bằng Java. Kiến trúc trình cắm cho phép mở rộng dễ dàng với các trình cắm thêm Java mới. Nó có thể tương tác với Matlab.

7

Formats

Nó truy cập hầu hết các định dạng tệp thương mại và mở bằng cách sử dụng các định dạng Sinh học.

số 8

Microscopic Processing

Nó có thể điều khiển tất cả kính hiển vi của bạn bằng một chương trình và thực hiện phân tích hình ảnh nhanh chóng.

LEADTOOLS

LEADTOOLS cung cấp hơn 200 chức năng xử lý hình ảnh trong một số danh mục bao gồm dọn dẹp tài liệu, nâng cao hình ảnh y tế, chuyển đổi và chỉnh sửa màu sắc, giảm nhiễu, phát hiện cạnh, v.v.

Một số tính năng cơ bản của LEADTOOLS được mô tả dưới đây:

Sr.No. Sự miêu tả yếu tố
1

Scanned Document Image Processing

Bộ sưu tập các chức năng mạnh mẽ này có thể đọc các tài liệu được quét về đồ tạo tác và các khuyết tật như lỗ đục lỗ, góc lệch, đường viền, đốm bụi, v.v.

2

Medical Image Processing

Nâng cao hình ảnh hoặc làm nổi bật các chi tiết bằng cách dịch chuyển, chọn, trừ và xóa hậu cảnh để có hình ảnh đẹp hơn.

3

Geometric Transformation

Các chức năng này có thể được sử dụng để làm sạch, căn chỉnh, chỉnh sửa hình ảnh hoặc áp dụng các hiệu ứng 3D nghệ thuật.

4

Brightness and Contrast

Các chức năng này có thể được sử dụng để nâng cao hình ảnh, áp dụng các hiệu ứng nghệ thuật hoặc hỗ trợ trong việc đánh giá chẩn đoán hình ảnh y tế.

5

Color Space Conversion

Họ có thể thêm chức năng không gian màu hình ảnh cho các ứng dụng đơn và đa luồng bao gồm các ứng dụng được lưu trữ trên máy chủ IIS và Windows WF.

6

Color Correction

Các chức năng này được sử dụng để sửa hình ảnh với các kênh màu được hoán đổi, cân bằng cường độ màu hoặc thực hiện các tác vụ phân tích hình ảnh khác nhau.

7

Image Enhancement

Các chức năng này được sử dụng để sửa các lỗi phổ biến trong nhiếp ảnh như mắt đỏ và màu sắc không cân bằng cũng như hỗ trợ đánh giá chẩn đoán hình ảnh y tế.

số 8

Region of Interest

Các chức năng này được sử dụng để tạo và sửa đổi các vùng quan tâm trong hình ảnh để thực hiện các chức năng xử lý hình ảnh trên các phần cụ thể của hình ảnh, tiết kiệm thời gian mã vạch và nhận dạng OCR hoặc thực hiện các tác vụ phân tích hình ảnh khác nhau.

OpenCV

OpenCV được phát hành theo giấy phép BSD và do đó nó miễn phí cho cả mục đích học thuật và thương mại. Nó có các giao diện C ++, C, Python và Java và nó hỗ trợ Windows, Linux, Mac OS, iOS và Android. OpenCV được thiết kế cho hiệu quả tính toán và tập trung mạnh vào các ứng dụng thời gian thực. Được viết bằng C / C ++ được tối ưu hóa, thư viện có thể tận dụng khả năng xử lý đa lõi.

Một số tính năng cơ bản của OpenCV được mô tả ngắn gọn:

Sr.No. Sự miêu tả yếu tố
1

Smoothing Images

Điều này liên quan đến việc áp dụng Blur, GaussianBlur, medianBlur và Bộ lọc song phương.

2

Eroding and Dilating

Nó có thể áp dụng hai toán tử hình thái học rất phổ biến - Độ giãn nở và Xói mòn.

3

Morphology Transformations

Chức năng OpenCV morphologyEx để áp dụng Chuyển đổi hình thái như mở, đóng, TopHat và BlackHat, v.v.

4

Image Pyramids

OpenCV có chức năng pyrUp và pyrDown để lấy mẫu xuống hoặc lấy mẫu một hình ảnh nhất định.

4

Basic Thresholding Operations

Thực hiện các thao tác tạo ngưỡng cơ bản bằng cách sử dụng ngưỡng chức năng OpenCV.

5

Adding borders to your images

Chức năng OpenCV copyMakeBorder được sử dụng để đặt đường viền (thêm phần đệm cho hình ảnh của bạn).

7

Remapping

Trong OpenCV, chức năng remap cung cấp một triển khai ánh xạ lại đơn giản.

số 8

Histogram Calculation

Đối với các mục đích đơn giản, OpenCV triển khai hàm calcHist, hàm này tính toán biểu đồ của một tập hợp các mảng (thường là hình ảnh hoặc mặt phẳng hình ảnh). Nó có thể hoạt động với tối đa 32 chiều.