Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Python

छवि में क्षैतिज रेखाओं को हटाना (OpenCV, Python, Matplotlib)

एक छवि में क्षैतिज रेखाओं को हटाने के लिए, हम निम्नलिखित कदम उठा सकते हैं -

  • स्थानीय चित्र पढ़ें।
  • इमेज को एक कलर स्पेस से दूसरे कलर स्पेस में बदलें।
  • प्रत्येक सरणी तत्व के लिए एक निश्चित-स्तरीय सीमा लागू करें।
  • रूपात्मक संचालन के लिए निर्दिष्ट आकार और आकार का एक संरचनात्मक तत्व प्राप्त करें।
  • उन्नत रूपात्मक परिवर्तन करें।
  • बाइनरी इमेज में कंटूर ढूंढें.
  • चरण 4 को विभिन्न कर्नेल आकार के साथ दोहराएं।
  • चरण 7 से नए कर्नेल के साथ चरण 5 को दोहराएं।
  • परिणामी छवि दिखाएं।

उदाहरण

import cv2

image = cv2.imread('input_image.png')
cv2.imshow('source_image', image)

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]

horizontal_kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (25, 1))
detected_lines = cv2.morphologyEx(thresh, cv2.MORPH_OPEN,
horizontal_kernel, iterations=2)

cnts = cv2.findContours(detected_lines, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cnts = cnts[0] if len(cnts) == 2 else cnts[1]

for c in cnts:
   cv2.drawContours(image, [c], -1, (255, 255, 255), 2)

repair_kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (1, 6))

result = 255 - cv2.morphologyEx(255 - image, cv2.MORPH_CLOSE, repair_kernel,
iterations=1)

cv2.imshow('resultant image', result)
cv2.waitKey()
cv2.destroyAllWindows()

आउटपुट

छवि में क्षैतिज रेखाओं को हटाना (OpenCV, Python, Matplotlib) छवि में क्षैतिज रेखाओं को हटाना (OpenCV, Python, Matplotlib) छवि में क्षैतिज रेखाओं को हटाना (OpenCV, Python, Matplotlib)

ध्यान दें कि हमारे source_image में क्षैतिज रेखाएं अब resultant_image में दिखाई नहीं देती हैं।


  1. OpenCV का उपयोग करके छवि के किनारों का पता लगाने के लिए पायथन प्रोग्राम

    इस समस्या में, हम देखेंगे कि पायथन किसी छवि या वीडियो फ़ाइल के किनारों का पता कैसे लगा सकता है। इसे प्राप्त करने के लिए, हमें OpenCV लाइब्रेरी की आवश्यकता है। OpenCV लाइब्रेरी मुख्य रूप से कंप्यूटर विज़न के लिए डिज़ाइन की गई है। यह खुला स्रोत है। मूल रूप से इसे इंटेल द्वारा डिजाइन किया गया था। यह ओप

  1. पायथन में ओपनसीवी का उपयोग करके टेम्पलेट मिलान

    टेम्पलेट मिलान एक ऐसी तकनीक है, जिसके द्वारा वास्तविक छवि से पैच या टेम्पलेट का मिलान किया जा सकता है। यह मूल रूप से एक पैटर्न मिलान तंत्र है। पायथन में ओपनसीवी मॉड्यूल है। ओपनसीवी का उपयोग करके, हम आसानी से मैच ढूंढ सकते हैं। तो इस समस्या में, OpenVC टेम्पलेट मिलान तकनीकों का उपयोग किया जाता है।

  1. पायथन ओपनसीवी मॉड्यूल का उपयोग करके हिस्टोग्राम इक्वलाइजेशन

    छवि के हिस्टोग्राम का उपयोग करके कंट्रास्ट समायोजन करने के लिए छवि प्रसंस्करण में यह एक विधि है। वास्तव में यह विधि आमतौर पर कई छवियों के वैश्विक विपरीत को बढ़ाती है, खासकर जब छवि के प्रयोग योग्य डेटा को निकट विपरीत मूल्यों द्वारा दर्शाया जाता है और इस समायोजन के माध्यम से, हिस्टोग्राम पर तीव्रता क