
- OpenCV 教程
- OpenCV - 首頁
- OpenCV - 概述
- OpenCV - 環境配置
- OpenCV - 儲存影像
- OpenCV - 讀取影像
- OpenCV - 寫入影像
- OpenCV - 圖形使用者介面
- 繪圖函式
- OpenCV - 繪製圓形
- OpenCV - 繪製直線
- OpenCV - 繪製矩形
- OpenCV - 繪製橢圓
- OpenCV - 繪製折線
- OpenCV - 繪製凸多邊形
- OpenCV - 繪製帶箭頭的直線
- OpenCV - 新增文字
- 濾波
- OpenCV - 雙邊濾波
- OpenCV - 盒式濾波
- OpenCV - 平方盒式濾波
- OpenCV - Filter2D
- OpenCV - 膨脹
- OpenCV - 腐蝕
- OpenCV - 形態學操作
- OpenCV - 影像金字塔
- Sobel 導數
- OpenCV - Sobel 運算元
- OpenCV - Scharr 運算元
- 攝像頭和人臉檢測
- OpenCV - 使用攝像頭
- OpenCV - 圖片中的人臉檢測
- 使用攝像頭進行人臉檢測
- OpenCV 有用資源
- OpenCV - 快速指南
- OpenCV - 有用資源
- OpenCV - 討論
OpenCV - 新增邊框
本章將教你如何在影像上新增邊框。
copyMakeBorder() 方法
您可以使用名為 Core 類中的 copyMakeBorder() 方法向影像新增各種邊框,該類屬於 org.opencv.core. 包。以下是此方法的語法。
copyMakeBorder(src, dst, top, bottom, left, right, borderType)
此方法接受以下引數:
src - 表示源(輸入)影像的 Mat 類物件。
dst - 表示目標(輸出)影像的 Mat 類物件。
top - 一個整數型別變數,表示影像頂部邊框的長度。
bottom - 一個整數型別變數,表示影像底部邊框的長度。
left - 一個整數型別變數,表示影像左側邊框的長度。
right - 一個整數型別變數,表示影像右側邊框的長度。
borderType - 一個整數型別變數,表示要使用的邊框型別。
示例
以下程式是一個示例,演示瞭如何向給定影像新增邊框。
import org.opencv.core.Core; import org.opencv.core.Mat; import org.opencv.imgcodecs.Imgcodecs; public class AddingBorder { public static void main( String[] args ) { // Loading the OpenCV core library System.loadLibrary( Core.NATIVE_LIBRARY_NAME ); // Reading the Image from the file and storing it in to a Matrix object String file ="E:/OpenCV/chap15/input.jpg"; Mat src = Imgcodecs.imread(file); // Creating an empty matrix to store the result Mat dst = new Mat(); Core.copyMakeBorder(src, dst, 20, 20, 20, 20, Core.BORDER_CONSTANT); Imgcodecs.imwrite("E:/OpenCV/chap15/border_constant.jpg", dst); System.out.println("Image Processed"); } }
假設以上程式中指定了以下輸入影像 thresh_input.jpg。

輸出
執行程式後,您將獲得以下輸出:
Image Processed
如果開啟指定的路徑,您可以觀察到輸出影像如下:

其他型別的邊框
除了前面示例中演示的 BORDER_CONSTANT 邊框型別之外,OpenCV 還提供了各種其他型別的邊框。所有這些型別都由 Core 類的預定義靜態欄位(固定值)表示。
您可以透過將相應的預定義值傳遞給 copyMakeBorder() 方法的 borderType 引數來選擇所需的閾值操作型別。
Core.copyMakeBorder(src, dst, 20, 20, 20, 20, Core.BORDER_CONSTANT);
以下是表示各種型別邊框操作及其相應輸出的值。
操作和描述 | 輸出 |
---|---|
BORDER_CONSTANT | ![]() |
BORDER_ISOLATED | ![]() |
BORDER_DEFAULT | ![]() |
BORDER_REFLECT | ![]() |
BORDER_REFLECT_101 | ![]() |
BORDER_REFLECT101 | ![]() |
BORDER_REPLICATE | ![]() |
BORDER_WRAP | ![]() |
廣告