কয়েক মিলিয়ন পিক্সেল সহ 2 ডি, আনবক্সড পিক্সেল অ্যারেগুলির জন্য কি হাস্কেলের প্রতিনিধিত্বের প্রস্তাব দেওয়া হয়?


117

আমি হাস্কেলের কিছু চিত্র-প্রক্রিয়াজাতকরণ সমস্যাগুলি মোকাবেলা করতে চাই। আমি কয়েক মিলিয়ন পিক্সেল সহ বিটোনাল (বিটম্যাপ) এবং রঙিন চিত্রগুলি নিয়ে কাজ করছি। আমার বেশ কয়েকটি প্রশ্ন রয়েছে:

  1. কোন ভিত্তিতে আমার মধ্যে Vector.Unboxedএবং এর মধ্যে নির্বাচন করা উচিত UArray? এগুলি উভয়ই আনবক্সড অ্যারে, তবে Vectorবিমূর্ততাটি প্রচুরভাবে বিজ্ঞাপন দেওয়া মনে হয়, বিশেষত লুপ ফিউশনকে ঘিরে। কি Vectorসবসময় ভাল? যদি তা না হয় তবে আমি কখন কোন উপস্থাপনা ব্যবহার করব?

  2. রঙিন চিত্রগুলির জন্য আমি 16-বিট পূর্ণসংখ্যার ট্রিপল বা একক নির্ভুলতা ভাসমান-পয়েন্ট সংখ্যাগুলির ট্রিপল সংরক্ষণ করতে চাই। এ জন্যে পারেন হয় Vectorবা UArrayব্যবহার করা আরো সহজ? আরও পারফর্মেন্ট?

  3. বিটোনাল চিত্রগুলির জন্য আমার প্রতি পিক্সেলটিতে 1 বিট সংরক্ষণ করতে হবে। এমন কোনও পূর্বনির্ধারিত ডেটাটাইপ রয়েছে যা একাধিক পিক্সেল একটি শব্দের মধ্যে প্যাক করে আমাকে এখানে সহায়তা করতে পারে, বা আমি নিজে থেকে আছি?

  4. অবশেষে, আমার অ্যারেগুলি দ্বিমাত্রিক। আমি মনে করি যে আমি "অ্যারের অ্যারে" (বা ভেক্টরগুলির ভেক্টর) হিসাবে উপস্থাপনের দ্বারা আরোপিত অতিরিক্ত নির্দেশনাটি মোকাবিলা করতে পারি, তবে আমি সূচি-ম্যাপিং সমর্থনযুক্ত একটি বিমূর্ততা পছন্দ করব। স্ট্যান্ডার্ড লাইব্রেরি থেকে বা হ্যাকেজ থেকে যে কেউ সুপারিশ করতে পারে?

আমি একটি ক্রিয়ামূলক প্রোগ্রামার এবং রূপান্তরকরণের প্রয়োজন নেই :-)


2
আমি মনে করি কেবল রেপা আছে যা 4 নম্বর পূরণ করে, cse.unsw.edu.au/~chak/papers/repa.pdf দেখুন
স্টিফেন টেটলি

5
@ স্টেফেন: স্ট্যান্ডার্ড Arrayইন্টারফেসটি বহুমাত্রিক অ্যারেগুলিকে সমর্থন করে। আপনি কেবল সূচকের জন্য একটি টুপল ব্যবহার করতে পারেন।
জন এল

13
এই প্রশ্নটি অত্যন্ত উত্সাহিত এবং পছন্দসই হয়েছে (আমার সহ) এটি ইঙ্গিত দেয় যে অ্যারেগুলিকে হ্যাস্কেল পরিচালনা করা খুব ভালভাবে নথিভুক্ত নয়।
আলেকজান্দ্রি সি

2
@ আলেকজান্দ্রি সি: বেসিক প্রতিদিনের অ্যারে পরিচালনা করা ভালভাবে নথিভুক্ত; পরিবর্তনীয় ডেটা ধারণকারী মেমরির বৃহত ব্লকগুলি পরিচালনা করা যেমন সি তে হবে তত সহজ ward যথাসম্ভব দক্ষতার সাথে বৃহত্তর অপরিবর্তনীয় বহুমাত্রিক অ্যারে পরিচালনা করা কিছুটা কম স্পষ্ট। এটি এমন পারফরম্যান্সে এমন একটি দৃশ্যের সুরক্ষার বিষয়ে যেখানে সূক্ষ্ম, কম-ডকুমেন্টেড বিবরণ কোনও ভাষায় সমস্যা হতে পারে।
সিএ ম্যাকক্যান

1
@ আলেকজান্দ্রে সি: বেশিরভাগ অ্যাপ্লিকেশনগুলির জন্য এটি নির্বিঘ্ন। এবং এটি ইস্যুতে আসলেই হাস্কেল নয়, এটি গ্রন্থাগার এবং সংকলক। S এর UArrayএকটি tuple দ্বারা সূচিকৃত একটি সরল Intসহজে কাজ করার জন্য এবং প্রায়শই যথেষ্ট ভাল, তবে GHC এর গভীর যাদুও তার সামান্যতম এপিআই ব্যবহার করে কোডটিকে অনুকূলতর করতে পারে না যা দ্রুত সমান্তরাল বাল্ক ডেটা প্রসেসিংয়ের জন্য একটি লাইব্রেরির সাথে সামঞ্জস্যপূর্ণ কোনও প্রতিযোগিতামূলক কিছুতে পরিণত হয়।
সিএ ম্যাকক্যান

উত্তর:


89

বহুমাত্রিক অ্যারেগুলির জন্য, আমার দৃষ্টিতে হাস্কেলের বর্তমান সেরা বিকল্পটি হ'ল রেপা

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

সম্প্রতি, এটি কিছু চিত্র প্রক্রিয়াজাতকরণ সমস্যার জন্য ব্যবহৃত হয়েছে:

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

Repa-IO প্যাকেজ পড়া ও .bmp ইমেজ ফাইল লেখা, যদিও আরো ফরম্যাটের জন্য সমর্থন প্রয়োজন ব্যবহার সমর্থন করে।

আপনার নির্দিষ্ট প্রশ্নগুলির উদ্দেশ্য, এখানে একটি গ্রাফিক, আলোচনার সাথে:


ইউআররে, ভেক্টর এবং রেপা এই তিনটিই আনবক্সিং সমর্থন করে।  ভেক্টর এবং রেপা একটি সমৃদ্ধ, নমনীয় এপিআই রয়েছে, তবে ইউএআরএ তা দেয় না।  ইউআররে এবং রেপাতে বহুমাত্রিক ইনডেক্সিং রয়েছে তবে ভেক্টর তা করেন না।  বিট-প্যাকিংয়ের জন্য তাদের সবার সমর্থন রয়েছে, যদিও ভেক্টর এবং রেপা এই বিষয়ে কিছু সাবধানতা অবলম্বন করে।  ভেক্টর এবং রেপা সি তথ্য এবং কোডের সাথে আন্তঃব্যবস্থাপনা করেন তবে ইউএআরএ তা করেন না।  কেবল রেপা স্টেনসিল সমর্থন করে।


ভেক্টর.উইনবক্সড এবং ইউএআরয়ের মধ্যে কোন ভিত্তিতে আমার চয়ন করা উচিত?

তাদের প্রায় একই অন্তর্নিহিত প্রতিনিধিত্ব রয়েছে, তবে, প্রাথমিক পার্থক্যটি ভেক্টরগুলির সাথে কাজ করার জন্য এপিআইয়ের প্রস্থ: তারা সাধারণত সমস্ত তালিকাগুলি (ফিউশন-চালিত অপ্টিমাইজেশন ফ্রেমওয়ার্ক সহ) তালিকার সাথে যুক্ত করতেন তবে তাদের প্রায় সমস্ত অপারেশন UArrayরয়েছে almost কোনও এপিআই নেই

রঙিন চিত্রগুলির জন্য আমি 16-বিট পূর্ণসংখ্যার ট্রিপল বা একক নির্ভুলতা ভাসমান-পয়েন্ট সংখ্যাগুলির ট্রিপল সংরক্ষণ করতে চাই।

UArrayবহুমাত্রিক ডেটার জন্য আরও ভাল সমর্থন রয়েছে, কারণ এটি সূচকের জন্য স্বেচ্ছাসেবী ডেটা ব্যবহার করতে পারে। যদিও এটিতে (আপনার উপাদান ধরণের Vectorউদাহরণ হিসাবে লিখে UA) এটি সম্ভব, এটি এর প্রাথমিক লক্ষ্য নয় Vector- পরিবর্তে Repaএটি একটি কার্যকর পদ্ধতিতে সঞ্চিত কাস্টম ডেটা ধরণের ব্যবহারকে খুব সহজ করে তোলে steps আকৃতি সূচকে ধন্যবাদ ।

ইন Repa, আপনার ট্রিপল শর্টের ধরণটি থাকবে:

Array DIM3 Word16

এটি, ওয়ার্ড 16 এর 3 ডি অ্যারে।

বিটোনাল চিত্রগুলির জন্য আমার প্রতি পিক্সেলটিতে 1 বিট সংরক্ষণ করতে হবে।

ইউআরআরাইস বুলসকে বিট হিসাবে প্যাক করে, ভেক্টর বুলের জন্য উদাহরণটি ব্যবহার করে যা বিট প্যাকিং করে না, পরিবর্তে উপর ভিত্তি করে একটি উপস্থাপনা ব্যবহার করে Word8। যাইহোক, ভেক্টরগুলির জন্য একটি বিট-প্যাকিং বাস্তবায়ন লেখা সহজ - (অপ্রচলিত) uvector লাইব্রেরি থেকে এখানে একটি one ফণা অধীনে, Repaব্যবহার করে Vectors, তাই আমি মনে করি এটি লাইব্রেরিগুলির প্রতিনিধিত্বমূলক পছন্দগুলির উত্তরাধিকার সূত্রে প্রাপ্ত।

এমন কোনও পূর্বনির্ধারিত ডেটাটাইপ রয়েছে যা একাধিক পিক্সেল একটি শব্দের মধ্যে প্যাক করে আমাকে এখানে সহায়তা করতে পারে

আপনি যে কোনও লাইব্রেরির জন্য বিদ্যমান শব্দের বিভিন্ন প্রকারের জন্য বিদ্যমান দৃষ্টান্তগুলি ব্যবহার করতে পারেন তবে প্যাকড ডেটা রোল করতে এবং আনারোল করার জন্য আপনাকে ডেটা বিট ব্যবহার করে কয়েকটি সহায়ক লিখতে হবে।

অবশেষে, আমার অ্যারেগুলি দ্বিমাত্রিক

ইউএআরএ এবং রেপা দক্ষ বহুমাত্রিক অ্যারে সমর্থন করে। রেপা এর করার জন্য একটি সমৃদ্ধ ইন্টারফেসও রয়েছে। ভেক্টর নিজে থেকে না।


উল্লেখযোগ্য উল্লেখ:

  • hmatrix , রৈখিক বীজগণিত প্যাকেজগুলিতে বিস্তৃত বাইন্ডিং সহ একটি কাস্টম অ্যারে প্রকার। vectorবা repaপ্রকারগুলি ব্যবহার করতে বাধ্য হতে হবে ।
  • ix- আকারে নিয়মিত অ্যারে থেকে আরও নমনীয় ইনডেক্সিং
  • চকবোর্ড , 2 ডি চিত্রগুলি ম্যানিপুলেট করার জন্য অ্যান্ডি গিলের লাইব্রেরি
  • কোডেক-চিত্র-শয়তান , ইউআর্রেতে বিভিন্ন চিত্র ফর্ম্যাট পড়ুন এবং লিখুন

5
এছাড়াও, আপনি এখন রেপা-শয়তানকে ধন্যবাদ, অনেকগুলি ফর্ম্যাটে 3 ডি রেপা অ্যারের চিত্র আইও করতে পারেন ।
ডন স্টুয়ার্ট

2
আপনি কি দয়া করে ব্যাখ্যা করতে পারেন যে রেপা কীভাবে সি কোডের সাথে ইন্টারঅ্যাক্ট করতে পারে? আমি ডেটা.আরে.রেপা ... এর জন্য স্ট্যাটিভ দৃষ্টান্তগুলি খুঁজে পাইনি ...
সস্তানিন

2
পয়েন্টারগুলিতে অনুলিপি করা সম্ভবত স্ট্যাটিবল ডেটার সবচেয়ে সহজতম পথ, তবে স্পষ্টভাবে কোনও দীর্ঘমেয়াদী সমাধান নয়। তার জন্য আমাদের হুডের নীচে স্ট্যাটিভাল ভেক্টর লাগবে।
ডন স্টুয়ার্ট


17

একবার আমি হাস্কেল অ্যারে লাইব্রেরির বৈশিষ্ট্যগুলি পর্যালোচনা করি যা আমার জন্য গুরুত্বপূর্ণ, এবং একটি তুলনা টেবিল সংকলন করে (কেবল স্প্রেডশিট: সরাসরি লিঙ্ক )। সুতরাং আমি উত্তর দেওয়ার চেষ্টা করব।

ভেক্টর.উইনবক্সড এবং ইউএআরয়ের মধ্যে কোন ভিত্তিতে আমার চয়ন করা উচিত? এগুলি উভয়ই আনবক্সড অ্যারে, তবে ভেক্টর বিমূর্তনটি ভারীভাবে বিজ্ঞাপনযুক্ত বলে মনে হচ্ছে, বিশেষত লুপ ফিউশনকে ঘিরে। ভেক্টর কি সর্বদা ভাল? যদি তা না হয় তবে আমি কখন কোন উপস্থাপনা ব্যবহার করব?

যদি কারও দ্বি-মাত্রিক বা বহু-মাত্রিক অ্যারে প্রয়োজন হয় তবে ভেক্টরের চেয়ে ইউএআরআরিকে পছন্দ করা যেতে পারে। তবে ভেক্টরকে সঠিকভাবে পরিচালনা করার জন্য ভেক্টরটির সুন্দর এপিআই রয়েছে। সাধারণভাবে, ভেক্টর মাল্টি-ডাইমেনশনাল অ্যারেগুলি অনুকরণের জন্য ভালভাবে উপযুক্ত নয়।

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

রঙিন চিত্রগুলির জন্য আমি 16-বিট পূর্ণসংখ্যার ট্রিপল বা একক নির্ভুলতা ভাসমান-পয়েন্ট সংখ্যাগুলির ট্রিপল সংরক্ষণ করতে চাই। এই উদ্দেশ্যে, ভেক্টর বা ইউএআরএই হয় ব্যবহার করা সহজ? আরও পারফর্মেন্ট?

আমি চিত্রগুলি উপস্থাপন করতে অ্যারে ব্যবহার করার চেষ্টা করেছি (যদিও আমাকে কেবল গ্রেস্কেল চিত্রের প্রয়োজন ছিল)। রঙিন চিত্রগুলির জন্য আমি চিত্রগুলি পড়তে / লিখতে কোডেক-চিত্র-ডেভিল লাইব্রেরি ব্যবহার করেছি (ডিভিল লাইব্রেরির সাথে বাইন্ডিংগুলি), গ্রেস্কেল চিত্রগুলির জন্য আমি পিজিএম লাইব্রেরি (খাঁটি হাস্কেল) ব্যবহার করেছি।

অ্যারের সাথে আমার বড় সমস্যাটি হ'ল এটি কেবল এলোমেলো অ্যাকসেস স্টোরেজ সরবরাহ করে তবে এটি অ্যারে অ্যালগরিদম তৈরির অনেকগুলি উপায় সরবরাহ করে না বা অ্যারে রুটিনগুলির লাইব্রেরি ব্যবহারের জন্য প্রস্তুত হয় না (লিনিয়ার বীজগণিত লাইবসের সাথে ইন্টারফেস দেয় না, না) কনভলিউশন, ফাফ্ট এবং অন্যান্য রূপান্তরগুলি প্রকাশ করার অনুমতি দেয় না)।

প্রায় প্রতিটি সময় বিদ্যমান বিদ্যমান থেকে একটি নতুন অ্যারে তৈরি করতে হবে, মানগুলির একটি অন্তর্বর্তী তালিকা তৈরি করতে হবে ( ভদ্র পরিচিতির ম্যাট্রিক্স গুণে যেমন )। অ্যারে নির্মাণের ব্যয় প্রায়শই দ্রুত এলোমেলো অ্যাক্সেসের সুবিধাগুলির ওজন করে। এই বিন্দুতে যে আমার ব্যবহারের ক্ষেত্রে কিছু ক্ষেত্রে তালিকাভিত্তিক প্রতিনিধিত্ব দ্রুত হয়।

STUArray আমাকে সাহায্য করতে পারে তবে আমি ক্রিপ্টিক টাইপের ত্রুটিগুলির সাথে লড়াই করতে পছন্দ করি না এবং STUArray এর সাথে পলিমারফিক কোড লেখার জন্য প্রয়োজনীয় প্রচেষ্টা চেষ্টা করি

সুতরাং অ্যারেগুলির সাথে সমস্যাটি হ'ল তারা সংখ্যামূলক গণনাগুলির জন্য ভাল উপযুক্ত নয়। হ্যাম্যাট্রিক্সের ডেটা.প্যাকড.ভেক্টর এবং ডেটা.প্যাকড.ম্যাট্রিক্স এই ক্ষেত্রে আরও ভাল, কারণ তারা একটি শক্ত ম্যাট্রিক্স লাইব্রেরির সাথে আসে (মনোযোগ: জিপিএল লাইসেন্স)। পারফরম্যান্স অনুসারে, ম্যাট্রিক্সের গুণায়, হ্যাম্যাট্রিক্স যথেষ্ট দ্রুত ছিল (অক্টাভের তুলনায় কেবল সামান্য ধীর ) তবে খুব স্মৃতিশক্তিভুক্ত (পাইথন / সাইপাইয়ের চেয়ে কয়েকগুণ বেশি পরিমাণে গ্রাস করা হয়েছিল)।

ম্যাট্রিক্সের জন্য ব্লেস লাইব্রেরি রয়েছে, তবে এটি জিএইচসি 7 তে তৈরি করে না।

রেপার সাথে আমার এখনও খুব বেশি অভিজ্ঞতা হয়নি, এবং রেপা কোডটি আমি ভালভাবে বুঝতে পারি না। আমি যা দেখছি তার থেকে এর উপরে লিখিত ম্যাট্রিক্স এবং অ্যারে অ্যালগরিদমগুলি ব্যবহারের জন্য খুব সীমিত পরিসীমা রয়েছে তবে কমপক্ষে লাইব্রেরির মাধ্যমে গুরুত্বপূর্ণ অ্যালগরিদমগুলি প্রকাশ করা সম্ভব। উদাহরণস্বরূপ, ইতিমধ্যে ম্যাট্রিক্স গুণণের জন্য এবং রেপা-অ্যালগোরিদমে কনভলভ করার জন্য রুটিন রয়েছে । দুর্ভাগ্যক্রমে, দেখে মনে হচ্ছে কনভোলশনটি এখন 7 × 7 কার্নেলের মধ্যে সীমাবদ্ধ (এটি আমার পক্ষে যথেষ্ট নয়, তবে অনেকগুলি ব্যবহারের জন্য যথেষ্ট হওয়া উচিত)।

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

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

যতদূর আমি জানি, বুলসগুলির আনবক্সেড অ্যারেগুলি বিট ভেক্টরগুলিকে প্যাকিং এবং আনপ্যাকিংয়ের যত্ন নেয়। আমি মনে করি অন্য লাইব্রেরিতে বুলের অ্যারেগুলি প্রয়োগের দিকে তাকিয়ে ছিলাম এবং এটি অন্য কোথাও দেখিনি।

অবশেষে, আমার অ্যারেগুলি দ্বিমাত্রিক। আমি মনে করি যে আমি "অ্যারের অ্যারে" (বা ভেক্টরগুলির ভেক্টর) হিসাবে উপস্থাপনের দ্বারা আরোপিত অতিরিক্ত নির্দেশনাটি মোকাবিলা করতে পারি, তবে আমি সূচি-ম্যাপিং সমর্থনযুক্ত একটি বিমূর্ততা পছন্দ করব। স্ট্যান্ডার্ড লাইব্রেরি থেকে বা হ্যাকেজ থেকে যে কেউ সুপারিশ করতে পারে?

ভেক্টর (এবং সাধারণ তালিকা) ব্যতীত অন্য সমস্ত অ্যারে লাইব্রেরি দ্বি-মাত্রিক অ্যারে বা ম্যাট্রিকগুলি উপস্থাপন করতে সক্ষম। আমি মনে করি তারা এলোমেলো ইন্দিরেশন এড়ায়।


নীচে উল্লিখিত ওপেনসিভি বাইন্ডিংগুলি অসম্পূর্ণ। একজনের পক্ষে এত বিশাল লাইব্রেরির জন্য একটি সম্পূর্ণ সেট তৈরি করা এবং বজায় রাখা সত্যিই সম্ভব নয়। যাইহোক, আপনার নিজের প্রয়োজন মতো ক্রিয়াকলাপের জন্য আপনাকে একটি র‌্যাপার তৈরি করতে হবে এমনকি এটি ওপেনসিভি ব্যবহার করা এখনও সাশ্রয়ী, যেহেতু এটি কিছু সত্যই জটিল জিনিস বাস্তবায়িত করে।
অ্যালিয়েটার

@ এলিয়েটার হ্যাঁ, আমি বুঝতে পারি যে এটি একজন ব্যক্তির পক্ষে সত্যই বিশাল পরিমাণের কাজ। বিটিডাব্লু, আপনি যদি কোনও রক্ষণাবেক্ষণকারী হন তবে আপনি দয়া করে কোথাও হ্যাডক ডক প্রকাশ করতে পারেন, সুতরাং স্থানীয়ভাবে ইনস্টল না করে গ্রন্থাগার এবং বাইন্ডিংয়ের কভারেজ মূল্যায়ন করা সম্ভব ছিল কি? (বিল্ড ত্রুটির কারণে ডকুমেন্ট হ্যাকেজে উপলভ্য নয়; এবং এটি M_PIঅঘোষিত কারণে জিএইচসি 6.12.1 বা জিএইচসি 7.0.2 নিয়ে আমার জন্য তৈরি করে না )।
সস্তানিন

@ জেক্সটি হেই, টিপটির জন্য ধন্যবাদ! আমি একটি নতুন সংস্করণ আপলোড করেছি যা উভয় সমস্যার সমাধান করতে পারে।
অ্যালিটার

@ এলিয়েটার ধন্যবাদ, এখন এটি পরিষ্কারভাবে তৈরি করে।
সস্তানিন

5

যদিও, এটি আপনার প্রশ্নের সঠিক উত্তর দেয় না এবং সত্যিকার অর্থে এটি তাত্ক্ষণিকভাবে হয় না, আমি হ্যাকেজের সিভি বা সিভি-কম্বিনেটর লাইব্রেরিগুলি একবার দেখার পরামর্শ দিই। তারা ওপেনসিভি-লাইব্রেরি থেকে অনেকগুলি বরং দরকারী ইমেজ প্রসেসিং এবং দৃষ্টি অপারেটরগুলিকে আবদ্ধ করে রাখে এবং মেশিন দৃষ্টি সমস্যাগুলির সাথে কাজটি আরও দ্রুত করে তোলে।

এটি বরং দুর্দান্ত হবে যদি কেউ ओपनসিভি দিয়ে সরাসরি কীভাবে রেপা বা এই জাতীয় কিছু লাইব্রেরি ব্যবহার করতে পারে তা নির্ধারণ করে।


0

এখানে একটি নতুন হাস্কেল ইমেজ প্রসেসিং লাইব্রেরি রয়েছে যা প্রশ্নে সমস্ত কাজ পরিচালনা করতে পারে এবং আরও অনেক কিছু করতে পারে। বর্তমানে এটি অন্তর্নিহিত উপস্থাপনাগুলির জন্য রেপা এবং ভেক্টর প্যাকেজগুলি ব্যবহার করে, যা ফলস্বরূপ ফিউশন, সমান্তরাল গণনা, মিউটেশন এবং libra লাইব্রেরিতে আসে এমন বেশিরভাগ গুডির উত্তরাধিকারী হয়। এটি চিত্রের ম্যানিপুলেশনের জন্য প্রাকৃতিক এমন একটি ইন্টারফেস ব্যবহার করতে সহজ করে:

  • 2D ইন্ডেক্স ও নির্বিচারে স্পষ্টতা সঙ্গে unboxed পিক্সেল ( Double, Float,Word16 , ইত্যাদি ..)
  • সব অপরিহার্য ফাংশন পছন্দ map, fold, zipWith,traverse ...
  • বিভিন্ন রঙের স্পেসের জন্য সমর্থন: আরজিবি, এইচএসআই, ধূসর স্কেল, দ্বি-টোনাল, কমপ্লেক্স ইত্যাদি
  • সাধারণ চিত্র প্রক্রিয়াকরণ কার্যকারিতা:
    • বাইনারি আকারবিদ্যা
    • সংবর্তন
    • ক্ষেপক
    • ফুরিয়ার রুপান্তর
    • হিস্টোগ্রাম প্লট করা
    • প্রভৃতি
  • পিক্সেল এবং চিত্রগুলিকে নিয়মিত সংখ্যা হিসাবে গণ্য করার ক্ষমতা।
  • জুসিপিক্সেলস লাইব্রেরির মাধ্যমে সাধারণ চিত্র ফর্ম্যাটগুলি পড়া এবং লেখা

সবচেয়ে গুরুত্বপূর্ণ, এটি খাঁটি হাস্কেল গ্রন্থাগার, সুতরাং এটি কোনও বাহ্যিক প্রোগ্রামের উপর নির্ভর করে না। এটি অত্যন্ত প্রসারণযোগ্য, নতুন রঙ স্পেস এবং চিত্র উপস্থাপনা প্রবর্তন করা যেতে পারে।

এটি যা না করে তা হ'ল একটিতে একাধিক বাইনারি পিক্সেল প্যাক করা Word, পরিবর্তে এটি Wordপ্রতি বাইনারি পিক্সেল ব্যবহার করে , সম্ভবত ভবিষ্যতে ...

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