ใช้ Python สำหรับ BMP การแยกภาพแบบไบนารี
สร้างแอป Python เพื่อไบนารี BMP รูปภาพและรูปภาพผ่าน API ของเซิร์ฟเวอร์
วิธี Binarize BMP รูปภาพและภาพถ่ายด้วย Python
การเปิดตัวการถ่ายภาพสีถือเป็นการเปลี่ยนแปลงครั้งสำคัญในแวดวงการถ่ายภาพ อย่างไรก็ตาม เสน่ห์ของภาพขาวดำสุดคลาสสิกยังคงอยู่ แม้ว่ากล้องสีจะมีแพร่หลาย แต่ผู้คนจำนวนมากยังคงเลือกที่จะแปลงภาพถ่ายเป็นขาวดำ โดยทั่วไปการเปลี่ยนแปลงนี้สามารถทำได้ผ่านกระบวนการไบนาไรเซชัน โดยแทนที่แต่ละพิกเซลด้วยค่าไบนารี: “0” สำหรับสีขาวและ “1” สำหรับสีดำ ภาพขาวดำมักถูกใช้เพื่อจุดประสงค์ที่มากกว่าแค่งานศิลปะ โดยค้นหาการนำไปประยุกต์ใช้จริงในสถานการณ์ต่างๆ เช่น การพิมพ์ภาพประกอบในสิ่งพิมพ์ เช่น หนังสือและหนังสือพิมพ์ ภายในไลบรารีกราฟิก Python คุณสามารถตั้งค่าเกณฑ์ความสว่างของพิกเซลได้ พิกเซลที่ต่ำกว่าเกณฑ์นี้จะถือว่าเป็นสีดำ ในขณะที่พิกเซลที่อยู่ด้านบนจะใช้สีขาว นอกจากนี้ยังมีเทคนิคการปรับทวินาไรเซชันแบบปรับได้ โดยพิจารณาจากค่าพิกเซลโดยรอบเพื่อสร้างการเปลี่ยนผ่านที่ราบรื่นระหว่างขอบเขตสีในภาพขาวดำที่ได้ สำหรับการแปลงไฟล์ BMP เป็นไบนารี เราจะใช้ Aspose.Imaging สำหรับ Python ผ่าน .NET API ซึ่งเป็น API การจัดการรูปภาพและการแปลงที่มีคุณลักษณะหลากหลาย ทรงพลัง และใช้งานง่ายสำหรับแพลตฟอร์ม Python คุณสามารถติดตั้งได้โดยใช้คำสั่งต่อไปนี้จากคำสั่งระบบของคุณ
บรรทัดคำสั่งของระบบ
>> pip install aspose-imaging-python-net
ขั้นตอนในการ ไบนารี่ BMPs ผ่าน Python
คุณต้องใช้ aspose-imaging-python-net เพื่อลองใช้เวิร์กโฟลว์ต่อไปนี้ในสภาพแวดล้อมของคุณเอง
- โหลดไฟล์ BMP ด้วยวิธี Image.Load
- ภาพไบนารี;
- บันทึกภาพที่บีบอัดลงในแผ่นดิสก์ในรูปแบบที่รองรับโดย Aspose.Imaging
ความต้องการของระบบ
Aspose.Imaging สำหรับ Python ได้รับการสนับสนุนในระบบปฏิบัติการหลักทั้งหมด เพียงตรวจสอบให้แน่ใจว่าคุณมีข้อกำหนดเบื้องต้นดังต่อไปนี้
- Microsoft Windows / Linux พร้อม .NET Core Runtime
- ตัวจัดการแพ็คเกจ Python และ PyPi
ไบนารีภาพ BMP - Python
| from aspose.imaging import * | |
| from aspose.imaging.fileformats.bmp import * | |
| from aspose.imaging.fileformats.dicom import * | |
| from aspose.imaging.fileformats.emf import * | |
| from aspose.imaging.fileformats.jpeg import * | |
| from aspose.imaging.fileformats.jpeg2000 import * | |
| from aspose.imaging.fileformats.png import * | |
| from aspose.imaging.fileformats.psd import * | |
| from aspose.imaging.fileformats.tiff.enums import * | |
| from aspose.imaging.imagefilters.filteroptions import * | |
| from aspose.imaging.imageoptions import * | |
| from aspose.imaging.masking import * | |
| from aspose.imaging.masking.options import * | |
| from aspose.imaging.masking.result import * | |
| from aspose.imaging.sources import * | |
| from aspose.pycore import as_of, is_assignable | |
| import os | |
| if 'TEMPLATE_DIR' in os.environ: | |
| templates_folder = os.environ['TEMPLATE_DIR'] | |
| else: | |
| templates_folder = r"C:\Users\USER\Downloads\templates" | |
| delete_output = 'SAVE_OUTPUT' not in os.environ | |
| def binarize_otsu(): | |
| filter_images(lambda image: image.binarize_otsu(), "binarizeotsu") | |
| def binarize_bradley(): | |
| filter_images(lambda image: image.binarize_bradley(0.5), "binarizebradley") | |
| def binarize_fixed(): | |
| filter_images(lambda image: image.binarize_fixed(70), "binarizefixed") | |
| def filter_images(do_filter, filter_name): | |
| obj_init = [] | |
| obj_init.append("jpg") | |
| obj_init.append("png") | |
| obj_init.append("bmp") | |
| obj_init.append("apng") | |
| obj_init.append("dicom") | |
| obj_init.append("jp2") | |
| obj_init.append("j2k") | |
| obj_init.append("tga") | |
| obj_init.append("webp") | |
| obj_init.append("tif") | |
| obj_init.append("gif") | |
| obj_init.append("ico") | |
| raster_formats = obj_init | |
| obj_init2 = [] | |
| obj_init2.append("svg") | |
| obj_init2.append("otg") | |
| obj_init2.append("odg") | |
| obj_init2.append("eps") | |
| obj_init2.append("wmf") | |
| obj_init2.append("emf") | |
| obj_init2.append("wmz") | |
| obj_init2.append("emz") | |
| obj_init2.append("cmx") | |
| obj_init2.append("cdr") | |
| vector_formats = obj_init2 | |
| all_formats = [] | |
| all_formats.extend(raster_formats) | |
| all_formats.extend(vector_formats) | |
| for format_ext in all_formats: | |
| input_file = os.path.join(templates_folder, f"template.{format_ext}") | |
| if not os.path.exists(input_file): | |
| continue | |
| is_vector_format = format_ext in vector_formats | |
| if is_vector_format: | |
| input_file = rasterize_vector_image(format_ext, input_file) | |
| output_file = os.path.join(templates_folder, f"{filter_name}_{format_ext}.png") | |
| print(format_ext) | |
| # explicit type casting from Image to RasterImage | |
| with as_of(Image.load(input_file), RasterImage) as image: | |
| do_filter(image) | |
| multi_page = None | |
| # if image implements an IMultipageImage interface | |
| if is_assignable(image, IMultipageImage): | |
| multi_page = as_of(image, IMultipageImage) | |
| if multi_page is not None and multi_page.page_count > 1: | |
| # for loop | |
| for_first_step = True | |
| page_index = 0 | |
| for page in multi_page.pages: | |
| file_name = f"{filter_name}_page{page_index}_{format_ext}.png" | |
| page.save(templates_folder + file_name, PngOptions()) | |
| os.remove(templates_folder + file_name) | |
| page_index += 1 | |
| else: | |
| image.save(output_file, PngOptions()) | |
| delete_file(output_file) | |
| if is_vector_format: | |
| delete_file(input_file) | |
| def rasterize_vector_image(format_ext, input_file): | |
| output_file = os.path.join(templates_folder, f"rasterized.{format_ext}.png") | |
| with Image.load(input_file) as image: | |
| image.save(output_file, PngOptions()) | |
| return output_file | |
| def delete_file(file): | |
| if delete_output: | |
| os.remove(file) | |
| # Run filters | |
| binarize_fixed() | |
| # binarize_bradley() | |
| # binarize_otsu() |
เกี่ยวกับ Aspose.Imaging สำหรับ Python API
Aspose.Imaging API เป็นโซลูชันการประมวลผลรูปภาพเพื่อสร้าง แก้ไข วาดหรือแปลงรูปภาพ (ภาพถ่าย) ภายในแอปพลิเคชัน นำเสนอ: การประมวลผลภาพข้ามแพลตฟอร์ม รวมถึงแต่ไม่จำกัดเพียงการแปลงระหว่างรูปแบบภาพต่างๆ (รวมถึงการประมวลผลภาพแบบหลายหน้าหรือหลายเฟรมแบบเดียวกัน) การปรับเปลี่ยน เช่น การวาด การทำงานกับภาพกราฟิกดั้งเดิม การแปลงภาพ (ปรับขนาด ครอบตัด พลิกและหมุน , ไบนารี, ระดับสีเทา, ปรับ), คุณสมบัติการจัดการภาพขั้นสูง (การกรอง, การแยกสี, การปิดบัง, การเดสก์) และกลยุทธ์การปรับหน่วยความจำให้เหมาะสม เป็นไลบรารีแบบสแตนด์อโลนและไม่ขึ้นกับซอฟต์แวร์ใด ๆ สำหรับการทำงานของรูปภาพ คุณสามารถเพิ่มคุณสมบัติการแปลงรูปภาพประสิทธิภาพสูงด้วย API ดั้งเดิมภายในโปรเจ็กต์ได้อย่างง่ายดาย สิ่งเหล่านี้เป็น API ภายในองค์กรที่เป็นส่วนตัว 100% และอิมเมจได้รับการประมวลผลที่เซิร์ฟเวอร์ของคุณไบนารี่ BMPs ผ่าน Online App
ทำเอกสาร BMP ให้เป็นไบนารีโดยไปที่ เว็บไซต์ Live Demos การสาธิตสดมีประโยชน์ดังต่อไปนี้
BMP คืออะไร BMP รูปแบบไฟล์
ไฟล์ที่มีนามสกุล .BMP แสดงถึงไฟล์ภาพบิตแมปที่ใช้เก็บภาพดิจิทัลบิตแมป รูปภาพเหล่านี้ไม่ขึ้นกับการ์ดจอและเรียกอีกอย่างว่ารูปแบบไฟล์บิตแมปที่ไม่ขึ้นกับอุปกรณ์ (DIB) ความเป็นอิสระนี้มีจุดประสงค์ในการเปิดไฟล์บนหลายแพลตฟอร์ม เช่น Microsoft Windows และ Mac รูปแบบไฟล์ BMP สามารถจัดเก็บข้อมูลเป็นภาพดิจิทัลสองมิติทั้งในรูปแบบขาวดำและรูปแบบสีที่มีความลึกของสีต่างๆ
อ่านเพิ่มเติมรูปแบบไบนารีอื่น ๆ ที่รองรับ
เมื่อใช้ Python เราสามารถไบนารีรูปแบบต่างๆ ได้อย่างง่ายดายรวมถึง