मैं अपने मेडिकल डेटा से जमीनी सच्चाई निकालना चाहता हूं। मैं एक ऐसे कार्यक्रम की तलाश में हूं जो इसमें मदद कर सके। मैं जो करना चाहता हूं वह इस प्रकार है। मैं एक विशिष्ट क्षेत्र का चयन करना चाहता हूं और इसे सफेद बनाना चाहता हूं, और मैं चाहता हूं कि यह दूसरे क्षेत्र में काला हो। तो मेरे हाथ में जमीनी सच्चाई होती। चित्रों में उदाहरण हैं। नोट: मेरे पास जमीनी सच्चाई नहीं है, केवल जमीनी सच्चाई के बिना मूल चित्र हैं। मुझे इस क्षेत्र को मूल छवि से खींचने और निकालने की जरूरत है ... यहां चित्र विवरण दर्ज करेंआपकी सहायता के लिए अग्रिम धन्यवाद।
2 जवाब
आइए आपकी छवि को इसके दो घटक भागों में विभाजित करें, पहले image.png
:
और दूसरा, mask.png
:
अब आप टर्मिनल में बिना कोई कोड लिखे ImageMagick का उपयोग कर सकते हैं। आपके पास कुछ विकल्प हैं। आप या तो यह कर सकते हैं:
- परिणाम में मास्क के काले हिस्से को पारदर्शी बनाएं, या
- परिणाम में मास्क के काले हिस्से को काला कर दें।
आइए पहले उन्हें पारदर्शी बनाते हैं, इसलिए हम छवि में मुखौटा को प्रभावी ढंग से कॉपी कर रहे हैं और इसे अल्फा/पारदर्शिता परत के रूप में मान रहे हैं:
magick image.png mask.png -compose copyalpha -composite result.png
और अब प्रत्येक पिक्सेल स्थान पर मूल छवि और मास्क के गहरे रंग को चुनकर उन्हें काला बनाते हैं - इसलिए darken
मिश्रण मोड:
magick image.png mask.png -compose darken -composite result.png
ध्यान दें कि यदि आप पहली तकनीक का उपयोग करते हैं, तो पारदर्शी दिखाई देने वाली मूल जानकारी अभी भी छवि में है और इसे पुनर्प्राप्त किया जा सकता है - इसलिए गोपनीय जानकारी को छिपाने के लिए इस तकनीक का उपयोग न करें।
यदि आप पीआईएल के साथ पायथन से पारदर्शिता पद्धति का उपयोग करना चाहते हैं, तो आप यह कर सकते हैं:
from PIL import Image
# Read image and mask as PIL Images
im = Image.open('image.png').convert('RGB')
ma = Image.open('mask.png').convert('L')
# Merge in mask as alpha channel and save
im.putalpha(ma)
im.save('result.png')
या, OpenCV और Numpy के साथ पारदर्शिता विधि:
import cv2
import numpy as np
# Open image and mask as NMumoy arrays
im = cv2.imread('image.png')
ma = cv2.imread('mask.png', cv2.IMREAD_GRAYSCALE)
# Merge mask in as alpha channel and save
res = np.dstack((im,ma))
cv2.imwrite('result.png', res)
यदि आप पाइथन और पीआईएल/पिलो के साथ ब्लैकन विधि का उपयोग करना चाहते हैं, तो इसका उपयोग करें:
from PIL import Image, ImageChops
# Read image and mask as PIL Images
im = Image.open('image.png').convert('RGB')
ma = Image.open('mask.png').convert('RGB')
# Choose darker image at each pixel location and save
res = ImageChops.darker(im, ma)
res.save('result.png')
यदि आप OpenCV और Numpy के साथ ब्लैकन विधि का उपयोग करना चाहते हैं, तो ऊपर दिए गए कोड का उपयोग करें लेकिन np.dstack()
लाइन को इसके साथ बदलें:
res = np.minimum(im, ma[...,np.newaxis])
मैं इस कार्य के लिए ITK - SNAP की अत्यधिक अनुशंसा कर सकता हूं। आप अपनी इनपुट छवियों को कुछ लेबल (अग्रभूमि के लिए 1, आपके उदाहरण में पृष्ठभूमि के लिए 0) के साथ मैन्युअल रूप से लेबल कर सकते हैं और ग्राउंडट्रूथ को बहुत आराम से निर्यात कर सकते हैं।
संबंधित सवाल
नए सवाल
image-processing
डिजिटल इमेज प्रोसेसिंग से संबंधित कोई भी चीज, यानी सिद्धांत और तकनीक का उपयोग डिजिटल इमेज से जानकारी निकालने या हेरफेर करने के लिए किया जाता है।