這一章教你如何蟾蜍邊界的形象。
The copyMakeBorder() Method
您可以使用名爲Core的類的方法copyMakeBorder()將各種邊框添加到圖像中,該類屬於包org.opencv.Core。下面是此方法的語法。
copyMakeBorder(src, dst, top, bottom, left, right, borderType)
此方法接受以下參數&負;
src−類的對象表示源(輸入)圖像。
dst−類的對象表示目標(輸出)圖像。
top−整數類型的變量,表示圖像頂部邊框的長度。
bottom−整數類型的變量,表示圖像底部邊框的長度。
left−整數類型的變量,表示圖像左側邊框的長度。
right−整數類型的變量,表示圖像右側邊框的長度。
border type−整數類型的變量,表示要使用的邊框類型。
Example
下面的程序是一個示例,演示如何向給定圖像添加邊框。
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。
Output
在執行程序時,您將得到以下輸出&負;
Image Processed
如果您打開指定的路徑,您可以按以下方式觀察輸出圖像−
Other Types of Borders
除了上一個示例中演示的border type,border_CONSTANT之外,OpenCV還滿足各種其他類型的邊框。所有這些類型都由核心類的預定義靜態欄位(固定值)表示。
通過將其各自的預定義值傳遞給copyMakeBorder()方法的名爲borderType的參數,可以選擇所需的閾值操作的類型。
Core.copyMakeBorder(src, dst, 20, 20, 20, 20, Core.BORDER_CONSTANT);
下面是表示各種邊界操作及其各自輸出的值。