OpenCV - เกณฑ์ง่าย ๆ
Thresholding เป็นวิธีการแบ่งส่วนภาพโดยทั่วไปจะใช้เพื่อสร้างภาพไบนารี Thresholding แบ่งออกเป็น 2 ประเภท ได้แก่ Thresholding และ Adaptive Thresholding
เกณฑ์ง่าย ๆ
ในการดำเนินการขีด จำกัด อย่างง่ายพิกเซลที่มีค่ามากกว่าค่าขีด จำกัด ที่ระบุจะถูกกำหนดด้วยค่ามาตรฐาน
คุณสามารถดำเนินการขีด จำกัด อย่างง่ายบนรูปภาพโดยใช้วิธีการ threshold() ของ Imgproc classต่อไปนี้เป็นไวยากรณ์ของวิธีนี้
threshold(src, dst, thresh, maxval, type)
วิธีนี้ยอมรับพารามิเตอร์ต่อไปนี้ -
src - วัตถุของคลาส Mat แสดงภาพแหล่งที่มา (อินพุต)
dst - วัตถุของคลาส Mat แสดงภาพปลายทาง (เอาต์พุต)
thresh - ตัวแปรประเภท double ที่แสดงถึงค่า threshold
maxval - ตัวแปรประเภทคู่ที่แสดงถึงค่าที่จะกำหนดหากค่าพิกเซลมากกว่าค่าเกณฑ์
type - ตัวแปรประเภทจำนวนเต็มแทนประเภทของขีด จำกัด ที่จะใช้
ตัวอย่าง
โปรแกรมต่อไปนี้สาธิตวิธีดำเนินการขีด จำกัด อย่างง่ายบนรูปภาพใน OpenCV
import org.opencv.core.Core;
import org.opencv.core.Mat;
import org.opencv.imgcodecs.Imgcodecs;
import org.opencv.imgproc.Imgproc;
public class Thresh {
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/chap14/thresh_input.jpg";
Mat src = Imgcodecs.imread(file);
// Creating an empty matrix to store the result
Mat dst = new Mat();
Imgproc.threshold(src, dst, 50, 255, Imgproc.THRESH_BINARY);
// Writing the image
Imgcodecs.imwrite("E:/OpenCV/chap14/thresh_trunc.jpg", dst);
System.out.println("Image Processed");
}
}
สมมติว่าต่อไปนี้เป็นภาพอินพุต thresh_input.jpg ระบุไว้ในโปรแกรมข้างต้น
เอาต์พุต
ในการรันโปรแกรมคุณจะได้รับผลลัพธ์ต่อไปนี้ -
Image Processed
หากคุณเปิดเส้นทางที่ระบุคุณสามารถสังเกตภาพที่ส่งออกได้ดังนี้ -
เกณฑ์ง่ายๆประเภทอื่น ๆ
นอกเหนือไปจาก THRESH_BINARYการดำเนินการที่แสดงในตัวอย่างก่อนหน้านี้ OpenCV รองรับการดำเนินการตามเกณฑ์ประเภทอื่น ๆ ประเภททั้งหมดเหล่านี้แสดงโดยฟิลด์คงที่ที่กำหนดไว้ล่วงหน้า (ค่าคงที่) ของImgproc ชั้นเรียน
คุณสามารถเลือกประเภทของการดำเนินการขีด จำกัด ที่คุณต้องการโดยส่งผ่านค่าที่กำหนดไว้ล่วงหน้าตามลำดับไปยังพารามิเตอร์ที่ชื่อ type ของ threshold() วิธี.
Imgproc.threshold(src, dst, 50, 255, Imgproc.THRESH_BINARY);
ต่อไปนี้เป็นค่าที่แสดงถึงประเภทต่างๆของการดำเนินการขีด จำกัด และผลลัพธ์ตามลำดับ
การทำงานและคำอธิบาย | เอาต์พุต |
---|---|
THRESH_BINARY |
|
THRESH_BINARY_INV |
|
THRESH_TRUNC |
|
THRESH_TOZERO |
|
THRESH_TOZERO_INV |
|