scipy.misc মডিউলটির কোনও গুণাবলি পঠিত নেই?


125

আমি স্কিপি সহ একটি চিত্র পড়ার চেষ্টা করছি। তবে এটি scipy.misc.imreadঅংশ গ্রহণ করে না । এর কারণ কি হতে পারে?

>>> import scipy
>>> scipy.misc
<module 'scipy.misc' from 'C:\Python27\lib\site-packages\scipy\misc\__init__.pyc'>
>>> scipy.misc.imread('test.tif')
Traceback (most recent call last):
  File "<pyshell#11>", line 1, in <module>
    scipy.misc.imread('test.tif')
AttributeError: 'module' object has no attribute 'imread'

আপনি স্কিপি কোন সংস্করণ ব্যবহার করছেন? আমার জন্য scipy.__version__দেয় 0.9.0এবং আমি আপনার সমস্যার পুনরুত্পাদন করতে পারি না
হ্যানস

আপনি একই ভুল পেতে পারি যদি আপনি না from scipy.misc import imread, এবং তারপর imread('test.tif')?
কার্তিক্র

@ কার্থিকর হ্যাঁ, আমি এর জন্য একই ত্রুটি পেয়েছি।
ustroetz

4
আমি মনে করি এই ফাংশনটি ইনস্টল করা পিআইএল ( পাইথনওয়্যার / প্রোডাক্টস / পিল ) এর উপর নির্ভর করে । আপনার কি পিআইএল আছে?
ওয়াইল্ডক

6
imreadSciPy 1.0.0 এ অবমূল্যায়ন করা হয়েছিল এবং এটি 1.2.0 এ সরানো হয়েছে। imageio.imreadপরিবর্তে ব্যবহার করুন।
মানস

উত্তর:


137

আপনাকে বালিশ ইনস্টল করতে হবে (পূর্বে পিআইএল )। থেকে ডক্স উপর scipy.misc:

নোট করুন বালিশটি সায়পাইয়ের নির্ভরতা নয় তবে নীচের তালিকায় ইঙ্গিতযুক্ত চিত্রের ম্যানিপুলেশন ফাংশনগুলি ছাড়া এটি উপলভ্য নয়:

...

imread

...

বালিশ ইনস্টল করার পরে, আমি imreadনিম্নলিখিত হিসাবে অ্যাক্সেস করতে সক্ষম হয়েছি :

In [1]: import scipy.misc

In [2]: scipy.misc.imread
Out[2]: <function scipy.misc.pilutil.imread>

অর্জ, তবে আমি যদি পিআইএল ইনস্টল করি তবে তা আমাকে দেবে<PngImagePlugin.PngImageFile...
অ্যালান রুইন

21
এটি এখন পিআইএল এর পরিবর্তে বালিশ হওয়া উচিত। রেফারেন্স: বালিশ.ড্রেডহেডসস.রোগ
ঝং

আপনি আমার দিন বাঁচিয়েছিলেন - তবে স্কিপি ডকুমেন্টেশন এত খারাপ কেন! আমার পদক্ষেপগুলি ইম্পল ইনস্টল করা হয়েছে + এমকেএল> বালিশ> স্কিপি সমস্ত উইন্ডোজের জন্য ইরভিনের সংকলিত পাইথন মডিউলগুলিতে ক্যালিফোর্নিয়া বিশ্ববিদ্যালয় থেকে ডাউনলোড করা হয়।
এসআইস্লাম

4
পাশাপাশি পরবর্তী উত্তর (@ শাদাবের উত্তর) পড়ুন এবং নোট করুন যে এটি ঠিক imageio, না scipy.imageio
টেরি ব্রাউন

4
নোট করুন যে এটি সায়পাইয়ের সর্বশেষ সংস্করণ (1.3.0) এর সাথে কাজ করে না। শাদাব থেকে সমাধান কাজ করে।
নিখিল গুপ্ত

106

imreadSciPy 1.0.0 এ অবমূল্যায়িত হয়েছে এবং এটি 1.2.0 এ সরানো হবে। imageio.imreadপরিবর্তে ব্যবহার করুন।

import imageio
im = imageio.imread('astronaut.png')
im.shape  # im is a numpy array
(512, 512, 3)
imageio.imwrite('imageio:astronaut-gray.jpg', im[:, :, 0])

12
সায়পাইয়ের ইম্রিড একটি নম্পি.অ্যান্ডারায় ফিরে আসত। ইমেজ.আইম্রেড চিত্র প্রদান করে। আপনি যদি একটি নম্পি.অ্যান্ডেরি চান / চান এবং এটি রূপান্তর করতে না চান তবে matplotlib.pyplot.imread ব্যবহার করুন, কারণ এটি একটি নম্পি.অ্যান্ডারাকেও দেয়।
স্টিফান

1
আমার এখানেও একই সমস্যা রয়েছে তবে শ্রদ্ধার সাথে imresize। পূর্বে, scipy.misc.imresizeকাজ করে। এখন এটি অবহেলা করা হয়েছে এবং আমি এর বিকল্প কোথায় পাব?
সাইচাঁদ

এটি একটি রসিকতা @ এসইচাঁদ
ফিলিপ

1
@ ফিলিপ, আমি scipy.misc.imresize ব্যবহার করার চেষ্টা করেছি। এটি এখন কাজ করে না, তবে আমি কিছুক্ষণ আগে এটি ব্যবহার করেছি। আমি আশা করি যে আমি যা বলেছিলাম তাতে রসিকতা না বলার চেয়ে মন্তব্যটিতে কোনও ভুল থাকলে আপনি আমাকে সংশোধন করতে পারতেন। আমি আমার ভুল থেকে শেখার জন্য উন্মুক্ত। আমার মন্তব্যে কী ভুল? ধন্যবাদ.
সাচাঁদ

ঠিক আছে আমাকে এটি স্বীকার করতে হবে আমি আমার মন্তব্যটি নিয়ে কিছুটা হতাশ হয়েছি সেই সময় আমি এটি লিখেছিলাম: পি। আমার অর্থ ছিল যে এটি একটি রসিকতা যা তারা উইন্ডোজে স্কিপি করার জন্য 1.0 এর নীচে চাকা বা ইনস্টলেশন সরবরাহ করেনি। যদি আপনি এখনও এটি ব্যবহার করতে চান তবে এটি কেবল স্কিপি == 1.2.0 ব্যবহার করুন কারণ এটি এখনও সেখানে উপলব্ধ (কেবল অবহিত হিসাবে চিহ্নিত হয়েছে, এখনও কাজ করে!) @ সাইচাঁদ
ফিলিপ

48

সংস্করণ ১.২.০ এর পরে ইমডিকে অবমূল্যায়ন করা হয়! সুতরাং এই সমস্যাটি সমাধান করার জন্য আমাকে সংস্করণ 1.1.0 ইনস্টল করতে হয়েছিল।

pip install scipy==1.1.0

3
@ শাদাবের উত্তর দেখুন, এটি imageioএখনই আছে।
টেরি ব্রাউন

31

পাইথন 3 জন্য, এটি ব্যবহার করার সবচেয়ে ভাল হয় imreadmatplotlib.pyplot:

from matplotlib.pyplot import imread

17

যদি কেউ একই সমস্যার মুখোমুখি হয় তবে দয়া করে স্কিপি আনইনস্টল করুন এবং স্কিপি ইনস্টল করুন == 1.1.0

$ pip uninstall scipy

$ pip install scipy==1.1.0

9

আপনার পাইথন ইমেজিং লাইব্রেরি (পিআইএল) দরকার তবে হায়! পিআইএল প্রকল্পটি পরিত্যক্ত বলে মনে হচ্ছে। বিশেষত, এটি পাইথন ৩-এ পোর্ট করা হয়নি, সুতরাং আপনি পাইথন 3-তে পিআইএল কার্যকারিতা চাইলে আপনি বালিশটি ভালভাবে ব্যবহার করবেন যা পিআইএল-এর আধিকারিক কাঁটাচামচ এবং এটি সক্রিয়ভাবে বিকাশিত বলে মনে হচ্ছে। আসলে, আপনার যদি একটি আধুনিক পিআইএল বাস্তবায়ন প্রয়োজন হয় তবে আমি বালিশটি সুপারিশ করব। এটা যেমন সহজpip install pillow । এটি যেমন পিআইএল হিসাবে একই নামস্থান ব্যবহার করে এটি মূলত একটি ড্রপ-ইন প্রতিস্থাপন।

এই কাঁটাচামচটি কত "আধা-সরকারী"? আপনি জিজ্ঞাসা করতে পারেন। আমাদের সম্পর্কে বালিশ ডক্সের পৃষ্ঠাটি এই বলে,

সর্বশেষ পিআইএল প্রকাশের পরে আরও সময় কেটে যাওয়ার সাথে সাথে নতুন পিআইএল রিলিজ হওয়ার সম্ভাবনা হ্রাস পায়। তবে, আমরা এখনও একটি অফিসিয়াল "পিআইএল মারা গেছে" ঘোষণা শুনতে পাইনি। সুতরাং আপনি যদি এখনও পিআইএল সমর্থন করতে চান, দয়া করে প্রথমে এখানে সমস্যাগুলি প্রতিবেদন করুন, তারপরে এখানে অনুরূপ বালিশ টিকিট খুলুন।

দয়া করে প্রথম টিকিটে একটি লিঙ্ক সরবরাহ করুন যাতে আমরা সমস্যাটিকে ওপরের দিকে ট্র্যাক করতে পারি।

যাইহোক, অফিসিয়াল পিআইএল সাইটে সর্বশেষতম পিআইএল প্রকাশের তারিখটি ১৫ নভেম্বর, ২০০৯ তারিখে প্রকাশিত think সুতরাং আপনার পাইথন 3 সমর্থন প্রয়োজন না হলেও, আমি আপনাকে পিআইপিআইতে উপলব্ধ প্রাচীন পিআইএল 1.1.6 ডিস্ট্রিবিউশনটি রোধ করার পরামর্শ দিই এবং কেবল নতুন, আপ টু ডেট, সামঞ্জস্যিক বালিশ ইনস্টল করুন।


7

নিম্নলিখিত কমান্ড দ্বারা বালিশ লাইব্রেরি ইনস্টল করুন:

pip install pillow

দ্রষ্টব্য, নির্বাচিত উত্তরটি পুরানো হয়ে গেছে। SciPy এর ডক্স দেখুন

নোট করুন বালিশ ( https://python-pillow.org/ ) সায়পাইয়ের নির্ভরতা নয়, তবে নীচের তালিকায় ইমেজ ম্যানিপুলেশন ফাংশনগুলি ছাড়া এটি উপলভ্য নয়।


6

উত্তর হিসাবে মিসক্যামিমেড সায়পিওয়ান ০.০.০ এ অবমূল্যায়ন করা হয়েছে এবং ১.২.০ এ সরানো হবে। চিত্রটি হ'ল একটি বিকল্প, এটি প্রকারের বস্তুটি ফিরিয়ে দেবে:

<class 'imageio.core.util.Image'>

তবে চিত্রের পরিবর্তে সিভি 2 ব্যবহার করুন

import cv2
im = cv2.imread('astronaut.png')

আমি টাইপ হবে: <class 'numpy.ndarray'>

যেহেতু নপি অ্যারেগুলি গণনা করা তত দ্রুত।


imageio কাজ, কিন্তু cv2 কারণ ত্রুটি: libpng সতর্কতা: IHDR অবৈধ ইমেজ উচ্চতা
sailfish009

4

ইম্রেড পিআইএল লাইব্রেরি ব্যবহার করে, যদি গ্রন্থাগারটি ইনস্টল থাকে তবে ব্যবহার করুন: "স্কিপি.অ্যান্ডিমেজ আমদানি ইম্রেড থেকে"

সূত্র: http://docs.scipy.org/doc/scipy-0.17.0/references/generated/scipy.ndimage.imread.html


এটি আমার জন্য কাজ করে! যদিও আমি বুঝতে পারি না যে আমার অধ্যাপক কেন "স্কিপি.মিস্ক আমদানি ইম্প্রেড থেকে" ব্যবহার করেন এবং এটি আমার ল্যাপটপে কাজ করে না
এলারিএল


1

আপনার একটি পাইথন ইমেজ লাইব্রেরি ( পিআইএল ) দরকার, তবে এখন পিআইএল কেবল যথেষ্ট নয়, আপনি বালিশটি আরও ভাল ইনস্টল করতে চান । এটি ভাল কাজ করে।


2
ইতিমধ্যে স্বীকৃত উত্তরে একটি মন্তব্য রয়েছে যা এর pillowপরিবর্তে ব্যবহার করা উচিত PIL। আমি উত্তর হিসাবে এটি যুক্ত করা খারাপ ধারণা বলে মনে করি না, তবে কেন আপনি তা ব্যাখ্যা করলে এটি আরও বেশি কার্যকর হবে। ধন্যবাদ।
lrnzcig

1

একটি বৃহত্তর নোটবুকে নিম্নলিখিতগুলি চালনা করে, আমার অনুরূপ ত্রুটি বার্তা ছিল:

from skimage import data
photo_data = misc.imread('C:/Users/ers.jpg')
type(photo_data)

'ত্রুটি' #:

ডি: \ প্রোগ্রাম ফাইলগুলি (x86) \ মাইক্রোসফ্ট ভিজ্যুয়াল স্টুডিও red শেয়ার করা \ অ্যানাকোন্ডা 3_64 \ lib \ সাইট-প্যাকেজগুলি ipykernel_launcher.py: 3: অবমূল্যায়ন সতর্কতা: হ্রাস imreadকরা হয়েছে! imreadSciPy 1.0.0 এ অবমূল্যায়িত হয়েছে এবং এটি 1.2.0 এ সরানো হবে। imageio.imread পরিবর্তে ব্যবহার করুন। এটি আইপিকারেল প্যাকেজ থেকে আলাদা তাই আমরা যতক্ষণ না আমদানি করা এড়াতে পারি

এবং নিম্নলিখিতগুলি ব্যবহার করে আমি এটি সমাধান করেছি:

import matplotlib.pyplot
photo_data = matplotlib.pyplot.imread('C:/Users/ers.jpg')
type(photo_data)

এটি প্রশ্নের সাথে সম্পর্কিত নয়। এটি একটি ভিন্ন সমস্যা এবং উত্তর is
হালিস ইলবোয়া

1

আমার কাছে জুপিটার নোটবুকে চিত্র নিষ্কাশনের জন্য প্রয়োজনীয় সমস্ত প্যাকেজ রয়েছে তবে তবুও এটি আমাকে একই ত্রুটি দেখায়।

জুপিটার নোটবুকে ত্রুটি

উপরের মন্তব্যগুলি পড়ে, আমি প্রয়োজনীয় প্যাকেজগুলি ইনস্টল করেছি। আমি কিছু প্যাকেজ মিস করেছি দয়া করে বলুন।

pip3 freeze | grep -i -E "pillow|scipy|scikit-image"
Pillow==5.4.1
scikit-image==0.14.2

scipy==1.2.1

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.