सरल छवि नाश के बाद का उपयोग कर: img_decim_arr = img_arr[::2,::2]
, मैं बहुत मूल छवि हिस्टोग्राम के समान हिस्टोग्राम प्राप्त:
नाश का उपयोग कर: skimage.measure.block_reduce(img_arr, block_size = (2,2), func=np.mean)
(2x2 ब्लॉक औसत) जो downsampling के लिए विधि की सिफारिश की है (में stackoverflow पर पाया कुछ चर्चा) बहुत विशिष्ट हिस्टोग्राम उत्पन्न करती है:
प्रत्येक दूसरा बिन बड़ा होता है। मुझे यकीन नहीं है कि यह कुछ अलियासिंग प्रभाव के कारण हो सकता है। क्या कोई भी कृपया समझा सकता है कि डाउनसमल्पिंग छवि (2 डी सिग्नल) हिस्टोग्राम को कैसे प्रभावित करती है, इसके बारे में कुछ सैद्धांतिक संकेत देते हैं?असामान्य हिस्टोग्राम
5
A
उत्तर
1
समस्या np.mean
फ़ंक्शन है, क्योंकि यह पूर्णांक के चारों ओर नहीं है और फ्लोट लौटाती है।
import numpy as np
import skimage.measure
a = (10 * np.random.randn(10,10) + 127).astype(np.uint8)
a
Out[4]:
array([[121, 124, 139, 129, 130, 114, 127, 96, 114, 135],
[127, 132, 102, 142, 119, 107, 138, 130, 141, 132],
[113, 132, 132, 118, 121, 120, 142, 115, 124, 128],
[127, 121, 129, 129, 121, 119, 126, 113, 128, 116],
[144, 131, 123, 131, 130, 137, 140, 142, 127, 128],
[127, 126, 124, 115, 127, 125, 122, 126, 147, 132],
[118, 119, 117, 117, 133, 149, 122, 120, 116, 138],
[147, 147, 127, 117, 123, 123, 136, 121, 139, 129],
[142, 129, 113, 111, 130, 116, 137, 127, 106, 148],
[132, 141, 141, 142, 119, 132, 126, 115, 131, 122]], dtype=uint8)
b = skimage.measure.block_reduce(a, block_size = (2,2), func=np.mean)
b
Out[6]:
array([[ 126. , 128. , 117.5 , 122.75, 130.5 ],
[ 123.25, 127. , 120.25, 124. , 124. ],
[ 132. , 123.25, 129.75, 132.5 , 133.5 ],
[ 132.75, 119.5 , 132. , 124.75, 130.5 ],
[ 136. , 126.75, 124.25, 126.25, 126.75]])
इससे आपको अपने तर्क में दिलचस्प दुष्प्रभाव मिल सकते हैं। यह निश्चित रूप से matplotlibs हिस्टोग्राम फ़ंक्शन के साथ शिकंजा करता है, क्योंकि फ्लोट होने से यह बिन सीमाओं को कैसे रखा जाए इसके बारे में अलग-अलग सोचता है।
इस की जाँच करें:
a = (10 * np.random.randn(200,200) + 127).astype(np.uint8)
b = skimage.measure.block_reduce(a, block_size = (2,2), func=np.mean)
hist(b.ravel(), bins=255)
सफेद बिट्स सरणी कि hist
समारोह रिटर्न में वास्तव में शून्य कर रहे हैं। यह भी खराब हो जाता है अगर आप मेरी खिलौना उदाहरण में गोलाई बल
hist(b.ravel().astype(np.uint8), bins=255)
यह डिब्बे देते और सीमा समस्या का हल। यहां तक कि अगर तुम पास ज़ूम
hist(b.ravel().astype(np.uint8), bins=255, range=(0,255))
संबंधित मुद्दे
- 1. पायथन हिस्टोग्राम: हिस्टोग्राम
- 2. हिस्टोग्राम
- 3. हिस्टोग्राम
- 4. हिस्टोग्राम
- 5. हिस्टोग्राम
- 6. हिस्टोग्राम
- 7. हिस्टोग्राम
- 8. हिस्टोग्राम
- 9. हिस्टोग्राम
- 10. हिस्टोग्राम
- 11. हिस्टोग्राम
- 12. हिस्टोग्राम
- 13. असामान्य आवश्यकताओं
- 14. वर्टिकल हिस्टोग्राम
- 15. "मेट्रिक्स" हिस्टोग्राम
- 16. matplotlib हिस्टोग्राम
- 17. हिस्टोग्राम फ़ंक्शन
- 18. ggplot हिस्टोग्राम
- 19. coord_polar() हिस्टोग्राम
- 20. हिस्टोग्राम matplotlib
- 21. Matplotlib (हिस्टोग्राम)
- 22. हिस्टोग्राम Matplotlib
- 23. ग्नुपलॉट हिस्टोग्राम
- 24. GGPlot2 हिस्टोग्राम
- 25. हिस्टोग्राम बिन
- 26. हिस्टोग्राम (matplotlib)
- 27. ggplot2 हिस्टोग्राम
- 28. हिस्टोग्राम jfreechart
- 29. मुख्य: ZooKeeperServerMain @ 54 - असामान्य तर्क, असामान्य रूप से
- 30. पर्यवेक्षी त्रुटि (असामान्य समाप्ति)
साजिश रची डेटा अलग-अलग है? अलग डेटा के लिए बहुत छोटे डिब्बे चुनते समय आप बुरा दृश्य प्रभाव प्राप्त कर सकते हैं। मैं डिब्बे की संख्या बदलने की कोशिश करता हूं और देखता हूं कि यह इस प्रभाव को हटा देता है या नहीं। – cel
हां, छवि रंग स्थान 8-बिट ग्रेस्केल, इस प्रकार डिब्बे की संख्या 256 है, प्रत्येक तीव्रता के लिए एक है। – MarcinBurz