पर रंगों की तुलना करें मेरे पास 2 चित्र हैं जिन्हें मैं तुलना करना चाहता हूं, अगर पिक्सेल रंग इसे सहेजने के लिए समान है। मैं इस UIImage
विस्तार समारोह द्वारा पिक्सेल के रंग का पता लगाने:स्विफ्ट - CGPoint
func getPixelColor(pos: CGPoint) -> ??? {
let pixelData = CGDataProviderCopyData(CGImageGetDataProvider(self.CGImage))
let data: UnsafePointer<UInt8> = CFDataGetBytePtr(pixelData)
let pixelInfo: Int = ((Int(self.size.width) * Int(pos.y)) + Int(pos.x)) * 4
let r = CGFloat(data[pixelInfo])/CGFloat(255.0)
let g = CGFloat(data[pixelInfo+1])/CGFloat(255.0)
let b = CGFloat(data[pixelInfo+2])/CGFloat(255.0)
let a = CGFloat(data[pixelInfo+3])/CGFloat(255.0)
return ???
}
उदाहरण के लिए, मैं चित्र 1 पर स्कैनर चलाने के लिए और एक सरणी में सहेज लिया जाए? या शब्दकोश? और उसके बाद मैं तस्वीर 2 पर स्कैनर चलाता हूं और जब मेरे पास 2 चित्रों से जानकारी होती है तो इसकी तुलना किस काम से की जाती है?
मैं देखना चाहता हूं कि कौन से CGPoint पिक्सल रंग 2 छवियों से समान हैं?
अद्यतन: मैं मुझे वापस पाने के लिए getPixelColor को अपडेट करता हूं "(pos) (आर) (जी) (बी) (ए)" और उसके बाद मैंने यह फ़ंक्शन बनाया जो केवल डुप्लीकेट छोड़ देता है (इस समारोह का उपयोग करने से पहले। प्रकार() ARRAY)
extension Array where Element : Equatable {
var duplicates: [Element] {
var arr:[Element] = []
var start = 0
var start2 = 1
for _ in 0...self.count{
if(start2<self.count){
if(self[start] == self[start2]){
if(arr.contains(self[start])==false){
arr.append(self[start])
}
}
start+=1
start2+=1
}
}
return arr
}
}
यह मैं कुछ इस तरह देता है: "(609.0, 47.0) 1.01.01.01.0" मुझे पता है कि रंग इस बिंदु पर काला है मैं क्या एक्स-536 के लिए आईफोन 5 स्क्रीन फिट करें और जब मैं इसे फिर से खींचने का प्रयास करता हूं तो यह कुछ गलत खींचता है ... शायद मैं इसे ठीक से नहीं कर सकता .. मदद?
वापसी एक 'UIColor', और देखें कि क्या उन्होंने बराबरी कर रहे हैं? ध्यान दें कि रंगों के बीच अंतर एक अलग-अलग दृष्टिकोण के साथ एक चर्चा विषय है। – Larme
भी - क्या आप हर सिंगल पिक्सेल की जांच कर रहे हैं? यदि आप इन तस्वीरों को स्कैन कर रहे हैं, तो मुझे नहीं लगता कि आपको प्रत्येक आयाम में 1/255 के लिए प्रत्येक रंग को स्कैन करने के बारे में चिंता करने से पहले, पिक्सेल-परिपूर्ण को रेखांकित करने का अधिक मौका है। – Russell
यूआईसीओलर प्रोटोकॉल हैशबल के अनुरूप नहीं है ... कुछ पिक्सेल 100% समान हैं, मैं देखना चाहता हूं कि कौन से CGPoint समान हैं ... –