أكثر

كيف تجد الحد الأدنى لقيمة البكسل داخل منطقة الاهتمام؟

كيف تجد الحد الأدنى لقيمة البكسل داخل منطقة الاهتمام؟


أنا أعمل على برنامج نصي بلغة Python لطرح الأشياء المظلمة ، وهي طريقة تصحيح إشعاعي للبيانات المستشعرة عن بعد ، ولتحقيق ذلك ، أحتاج إلى إيجاد الحد الأدنى لقيمة بكسل النطاق لتجمع مائي داخل منطقة الاهتمام (ROI) (لقطة شاشة). كان تفكيري الأولي هو إنشاء مضلع داخل مشهد لاندسات واستخدام إحصائيات المنطقة كجدول للعثور على الحد الأدنى للقيمة. ومع ذلك ، لا يمكنني استدعاء هذا الحد الأدنى للقيمة بسهولة لاحقًا في البرنامج النصي. كانت هناك فكرة أخرى تتمثل في تحويل النطاق إلى مصفوفة عددية وإيجاد القيمة الدنيا (باستثناء 0) ، على الرغم من أنني لست متأكدًا من كيفية تقسيم المصفوفة إلى عائد الاستثمار الخاص بي. كيف يمكنني العثور على الحد الأدنى للقيمة باستخدام منطقة اهتمام بحيث يمكنني بسهولة استدعاء هذه القيمة لاحقًا في البرنامج النصي؟


فيما يتعلق بالإجابة التي قدمتها على سؤال مشابه (تحديد الحد الأدنى والحد الأقصى للارتفاع ... ضمن النطاق الحالي) ، أتساءل عما إذا كان هذا سينجح:

import arcpy # هذا يحدد مدى العرض الحالي ، يمكنك بدلاً من ذلك تعيينه على ROI polygon arcpy.env.extent = arcpy.mapping.MapDocument.activeView.Extent # للحصول على خطوط نقطية متعددة النطاقات ، انتبه إلى فهرس النطاق (الإدخال الأخير ) arcpy.MakeRasterLayer_management ("c: /temp/raster.tif"، "rlayer"، "#"، arcpy.env.extent، "1") # احصل على نطاق كائن نتيجة المعالجة الجغرافيةMinResult = arcpy.GetRasterProperties_management ("rlayer"، "MINIMUM") # احصل على قيمة الحد الأدنى للارتفاع من نطاق نتيجة المعالجة الجيولوجية bandMinDN = elevMinResult.getOutput (0)

لا يزال بإمكانك استخدام إحصائيات المنطقة مع خيار الحد الأدنى. ينتج عنه خطوط نقطية يمكن استخدامها لمزيد من معالجة Zonal Statistics


التصوير الشعاعي الرقمي - الفصل 25

استخدم السيلينيوم غير المتبلور (مادة تنبعث منها الإلكترون) ويشار إليها أحيانًا باسم أنظمة التصوير الشعاعي المباشر (DR).

كفاءة الامتصاص أعلى وأقل من 35-50 كيلوفولت أقل من شاشات تكثيف التربة النادرة.

لذا فإن اللوح أكثر حساسية للتشتت قبل وبعد أن يتم تحسسه من خلال التعرض لحزمة الأشعة السينية.

قد تكون هناك حاجة لمزيد من التعرض لتجنب التبقع الكمي.

سوف تمتص لوحات التصوير المزيد من تشتت الطاقة المنخفضة أكثر من الفيلم.

يضرب فوتون Xray فوسفور IP ويتم امتصاصه عن طريق الامتصاص الكهروضوئي.

تثير الإلكترونات الضوئية التي يتم إنتاجها الإلكترونات المجاورة منخفضة الطاقة.

تترك الإلكترونات المثارة مستواها المداري الأصلي وتحتجزها الفلوروهيدات. تسقط بعض هذه الإلكترونات مرة أخرى في مدارها الأصلي مسببة الفلورة. يبقى الآخرون في مصيدة الفلوروهاليد F-trap ويخلقون & quothole & quot في مواقع Europium ، مكونين الصورة الكامنة.


استخدام مناطق KML لعرض مجموعات بيانات GIS كبيرة في برنامج Google Earth

سنقوم بتسليم سلسلة من المشاركات خلال الأسبوعين المقبلين تغطي استخدام مناطق KML في Google Earth لعرض مجموعات بيانات GIS الكبيرة. في هذا المنشور الأول ، قمنا & # 8217ll بتغطية بعض المعلومات التمهيدية الأساسية التي ستوفر لك بعض المعلومات الأساسية حول مناطق KML والطرق المختلفة التي يمكن استخدامها بها في Google Earth.

ما هي المناطق؟
تتيح لك مناطق KML إضافة مجموعات بيانات كبيرة جدًا إلى برنامج Google Earth دون التضحية بالأداء. تسمح هذه الوظيفة بتحميل البيانات وعرضها فقط عندما تقع ضمن الشاشة وتحتل جزءًا معينًا من الشاشة. عادةً ما يتم استخدام المناطق لتوفير مستويات مميزة من التفاصيل لبياناتك حيث يتم عرض التفاصيل الدقيقة فقط عند التكبير بدرجة كافية على الشاشة. في نموذج كائن KML ، يمكن تضمين المناطق في أي ميزة مما يعني العلامات الموضعية ، وارتباطات الشبكة ، والتراكبات ، والحاويات. الأكثر شيوعًا هو استخدام المنطقة للتأثير على رؤية العلامات الموضعية أو التراكبات الأرضية. يحدد عنصر & ltRegion & gt هذا المفهوم ، ويتألف من مفهومين مهمين بما في ذلك المربع المحيط ومستوى التفاصيل أو LOD.

الصندوق المحيط
يصف المربع المحيط ، المحدد بواسطة عنصر & ltLatLongAltBox & gt ، منطقة الاهتمام المحددة بواسطة الإحداثيات والارتفاعات الجغرافية. يحتوي هذا العنصر ، المشابه لـ & ltLatLongBox & gt ، على العناصر الفرعية & ltnorth & gt و & ltsouth & gt و & lteast & gt و & ltwest & gt التي تحدد الحدود الجغرافية للمنطقة. بالإضافة إلى ذلك ، يحتوي المربع المحيط أيضًا على عناصر تحدد الارتفاع الأدنى والأقصى (& ltminAltitude & gt، & ltmaxAltitude & gt). تعتبر المنطقة & # 8220active & # 8221 أو مرئية عندما يكون المربع المحيط داخل العرض ويتم استيفاء مستوى متطلبات التفاصيل.

مستوى التفصيل
يتم تحديد مستوى التفاصيل أو LOD باستخدام العنصر الفرعي & ltLod & gt في & ltRegion & gt. يحدد نطاقًا محددًا بواسطة & ltminLodPixels & gt و & ltmaxLodPixels & gt الذي يحدد رؤية البيانات داخل المنطقة. يضمن ذلك تحميل كميات كبيرة من البيانات فقط عندما يتوفر عدد كافٍ من وحدات البكسل لعرض البيانات بشكل مناسب. عندما تشغل المنطقة نسبة صغيرة نسبيًا من الشاشة ، يتيح لك LOD تحديد مجموعة بيانات بدقة أقل. يتم تحديد وحدات القيمة & ltLod & gt بوحدات البكسل المربعة. يجب أن تشغل البيانات مساحة أكبر من & ltminLodPixels & gt وأقل من & ltmaxLodPixels & gt لتكون مرئية.

عناصر المنطقة
تشمل العناصر الأساسية الخاصة بالمنطقة ما يلي:

& ltLatLonAltBox & gt (مطلوب) & # 8211 مربع إحاطة يصف منطقة اهتمام محددة بواسطة الإحداثيات الجغرافية والارتفاع.

& ltminAltitude & gt & # 8211 الافتراضي هو 0 المحدد بالأمتار فوق مستوى سطح البحر

& ltmaxAltitude & gt & # 8211 الافتراضي هو 0 المحدد بالأمتار فوق مستوى سطح البحر

& ltnorth & gt، & ltsouth & gt، & lteast & gt، & ltwest & gt & # 8211 تُستخدم لتحديد إحداثيات خطوط الطول والعرض للمربع المحيط

& ltLod & gt & # 8211 مختصر لمستوى التفاصيل. يصف حجم المنطقة المسقطة على الشاشة المطلوب حتى يتم اعتبار المنطقة & # 8220 نشطة & # 8221. يتألف من العناصر الفرعية التالية:

& ltminLodPixels & gt & # 8211 القياس بوحدات بكسل الشاشة التي تمثل الحد الأدنى لنطاق الرؤية لمنطقة معينة.

& ltmaxLodPixels & gt & # 8211 القياس بوحدات بكسل الشاشة التي تمثل الحد الأقصى لنطاق الرؤية لمنطقة معينة.

& ltminFadeExtent & gt & # 8211 المسافة التي تتلاشى فيها الهندسة ، من معتم تمامًا إلى شفاف تمامًا. يتم التعبير عن القيمة بوحدات بكسل الشاشة ويتم تطبيقها عند الحد الأدنى لحدود LOD.

& ltmaxFadeExtent & gt & # 8211 المسافة التي تتلاشى فيها الهندسة ، من شفافة تمامًا إلى معتم تمامًا. يتم التعبير عن القيمة بوحدات بكسل الشاشة ويتم تطبيقها في أقصى نهاية لحدود مستوى الضبط.

مثال
الآن وبعد أن قمنا & # 8217 بتغطية بعض المعلومات الأساسية حول مناطق KML ، يمكنك النقر هنا لمشاهدة مثال (بإذن من Google). & # 8217 سترغب في التأكد من تثبيت برنامج Google Earth بالفعل. قم بتجربة وجهات نظر مختلفة ومشاهدة عندما تظهر المنطقة خارج نطاق الرؤية وخارجها ، اعتمادًا على مقدار مساحة الشاشة التي تتطلبها.

في المنشورات القادمة ، نقوم & # 8217ll بتغطية بعض ميزات المنطقة الأكثر تقدمًا ، ونعرض لك مثالاً على كيفية إنشاء المناطق ، واكتشاف كيفية استخدام Arc2Earth لإنشاء مناطق من بيانات ArcGIS.

الحصول على المزيد من المعلومات
تقدم خدمات التدريب الجغرافي المكاني دورات التعلم الإلكتروني لمستخدمي نظم المعلومات الجغرافية. إذا كنت ترغب في الحصول على مزيد من المعلومات حول المناطق وعناصر KML الأخرى ، فيرجى الاطلاع على & # 8220Mastering KML في دورة التعلم الإلكتروني في Google Earth & # 8221. تتضمن الدورة التدريبية الأخرى ذات الصلة & # 8220Integrating ArcGIS Desktop و Google Earth & # 8220، & # 8220 مقدمة إلى Google Maps API & # 8220، & # 8220Arc2Earth for ArcGIS Users & # 8220 ، و & # 8220Google Bundle & # 8221 التي تجمع كل هذه الدورات في واحدة حزمة بخصم كبير.


مسابقة 4

أ) من خلال إيجاد الانحراف المعياري لأرقام التصوير المقطعي المحوسب داخل منطقة الاهتمام.

ب) من خلال إيجاد الوسيط القياسي لأرقام التصوير المقطعي المحوسب داخل المنطقة محل الاهتمام.

ج) من خلال إيجاد تباين أرقام التصوير المقطعي المحوسب داخل منطقة الاهتمام.

أ) عند ظهور شرائط داكنة أو خطوط بين الأجسام الكثيفة في الصورة.

ب) عندما يكون محيط الصورة أفتح.

ج) عندما تبدو الخطوط الدقيقة وكأنها تشع من بنية كثيفة.

ب) برنامج تصحيح شعاع تصلب

ج) تباطؤ سرعة دوران القنطرة

أ) يوجد أكثر من نوع واحد من الأنسجة داخل فوكسل.

ب) كائنات غير منتظمة الشكل لها اختلاف واضح في الكثافة عن الهياكل المحيطة.

ج) التشريح الذي يمتد خارج SFOV المحدد

أ) أعط المريض تعليمات واضحة عن التنفس

ب) إعادة معايرة الماسح الضوئي

ج) اختر SFOV أكبر من المريض.

ب) تتكون الأشعة السينية من طاقات مختلفة

أ) اسم آخر لانحناء الأنبوب

ب) اسم آخر لتأثير تدرج الحافة

ج) نوع مرشح يستخدم للقضاء على تصلب الحزمة

أ) كلما زاد حجم البكسل عن سمك الشريحة ، زادت فائدة عمليات إعادة البناء المتداخلة لبيانات المصدر في إعادة التشكيل متعدد الأسطح (MPR) وإعادة التشكيل ثلاثي الأبعاد.

ب) كلما زاد حجم البكسل عن سماكة الشريحة ، قلت فائدة عمليات إعادة البناء المتداخلة لبيانات المصدر في إعادة التشكيل متعدد الأسطح (MPR) وإعادة التشكيل ثلاثي الأبعاد.

ج) كلما زاد سمك الشريحة عن حجم البكسل ، قلت فائدة إعادة البناء المتداخلة لبيانات المصدر في إعادة التشكيل متعدد الأسطح (MPR) وإعادة التشكيل ثلاثي الأبعاد.

أ) لإنشاء عمليات المسح التي يتم إنشاؤها باستخدام وحدات البكسل متناحية الخواص أو بالقرب من الخواص

ب) للحفاظ على ميزة التصوير عالي الدقة ولكن أيضًا إنشاء ملفات صور يمكن إدارتها ومراجعتها بسهولة أكبر من قبل أطباء الأشعة

أ) الإصلاح الذي يسمح للمشغل باستخدام الماوس أو أي جهاز آخر لتغيير مستوى الصورة يدويًا بينما يقوم البرنامج باستمرار بتحديث الصورة.

ب) الإصلاح المصمم خصيصًا للنظر داخل تجويف الهيكل

أ) إذا كانت هناك حاجة إلى صور مائلة أو منحنية ، فيجب على الفني إنشاؤها يدويًا

ب) تحتوي البيانات على مئات الصور يحتمل أن تبطئ شبكة PACS


ترسيم لجنة الاتصالات الفدرالية

توفر لجنة الاتصالات الفيدرالية & # 8216 المناطق الاقتصادية الجزئية & # 8217 لعام 2010. يتوفر مزيد من المعلومات على موقع الويب الخاص بلجنة الاتصالات الفيدرالية هنا. إنها أقسام من المناطق الاقتصادية BEA المصممة لتسهيل مزاد تراخيص الاتصالات. تشير إحصائيات Fit إلى أن مجموعات المقاطعات هذه لا تعمل بشكل جيد في مطابقة مفهوم سوق العمل (ولم يكن هذا هو الغرض المقصود منها). لا ينبغي استخدامها لتمثيل أسواق العمل ، ولكن يتم تقديمها هنا للتأكد من اكتمالها.


تحجيم الصورة السريع بمقدار 2

في مقال سابق ([1]) قدمت تعديلاً لخوارزمية بريسنهام الخطية لتوسيع نطاق الصور بجودة تقارب جودة الاستيفاء الخطي. أطلقت على هذه الخوارزمية اسم "تحجيم بريسنهام السلس". في المقالة ، أشرت إلى أن عامل المقياس يجب أن يقع في نطاق 50٪ إلى 200٪ حتى يعمل الروتين بشكل صحيح. بعد ذلك ، اقترحت أنه إذا كنت بحاجة إلى عامل تحجيم خارج هذا النطاق ، فيمكنك استخدام خوارزمية منفصلة تقيس الصورة لأعلى أو لأسفل بمعامل 2 ثم استخدام Bresenham السلس للقياس إلى الحجم النهائي. موضوع هذه المقالة هو القياس بمعامل 2.

يمكن اعتبار هذه المقالة والسابقة مقالة واحدة مقطوعة إلى جزأين: استخدامهما المشترك هو الذي ينتج عنه غرض عام ، خوارزمية تحجيم الصورة السريع بجودة مناسبة. كلا المقالتين تعتمد على ملف معدل() الوظيفة التي تم تناولها في مادة منفصلة [2].

مثل المقالة السابقة ، تعالج الخوارزميات الموضحة هنا الصور الملونة في مسار واحد دون تفريغ وإعادة حزم البكسلات في قنوات RGB منفصلة. على الرغم من أن الصور النموذجية في هذه المقالة كلها ذات مقياس رمادي (قناة واحدة) ، فإن نفس الخوارزميات مناسبة للصور الملونة ثلاثية القنوات وللصور المفهرسة باللوحات.

بسيط 1 /2& مرات قشارة الصورة

تتمثل إحدى أبسط الطرق لخفض دقة الصورة إلى النصف في استبدال كل رباعي من أربعة بكسلات بمقدار بكسل واحد بمتوسط ​​وحدات البكسل الأربعة. تسمي نظرية أخذ العينات هذا "مرشح الصندوق" في تجربتي ، يعطي مرشح الصندوق جودة جيدة عند تصغير الصورة بعامل متكامل.

عندما يكون من السهل حساب متوسط ​​أربعة بكسلات ، فافعل ذلك بكل الوسائل. إذا كان من الصعب حسابها ، مثل الصور المفهرسة بلوحة الألوان ، فيمكنك اختيار استخدام ملف معدل() وظيفة (انظر [2]) ثلاث مرات متتالية ، كما هو الحال في المقتطف أدناه.

لقد كتبت الكود في المقتطف أعلاه للتوضيح أكثر من العمل كرمز إنتاج. يتمثل أحد التحسينات الواضحة في تجنب حساب نفس القيم مرارًا وتكرارًا: التعبيرات y2 * SrcWidth, (y2 + 1) * SrcWidth و ذ * TgtWidth تظل ثابتة في الحلقة الداخلية ويجب استبدالها بالمتغيرات المحسوبة مسبقًا. ربما يمكنك الوثوق بالمترجم الخاص بك للقيام بهذا التحسين نيابة عنك.

من أمثلة الصور الموضحة أدناه ، من الواضح أن مرشح الصندوق يعادل الاستيفاء الخطي باستخدام عامل القياس هذا. يعمل المرشح الصندوقي (والمحرف الثنائي الخطي) بشكل أفضل من المحرف الثنائي التكعيبي عند التصغير: الصور الناتجة من المحرف المكعب غير واضحة ، كما يمكنك أن ترى من صور "الرسومات الخطية" المقاسة.

الرسومات الخطية - مع "jaggies" ومناطق ناعمة

الصورة الأصلية

50% - مرشح الصندوق

50٪ - استيفاء خطي

50٪ - الاستيفاء Bicubic

"لينا" - 128 × 128 بكسل للصورة القياسية

الصورة الأصلية

50% - مرشح الصندوق

50٪ - استيفاء خطي

50٪ - الاستيفاء Bicubic

حساس للحافة اتجاهي متوسط ​​قشارة الصورة 2 مرات

من بين الخوارزميات الأكثر شيوعًا لتكبير الصورة النقطية النسخ المتماثل للبكسل والاستيفاء ثنائي الخطوط ، هذه الخوارزميات سريعة وسهلة التنفيذ. تقوم خوارزمية النسخ المتماثل للبكسل ببساطة بنسخ أقرب بكسل (أخذ عينات الجار الأقرب). نتيجة لذلك ، تكون الخوارزمية عرضة للعرقلة ، والتي تظهر بشكل خاص على طول الحواف. الاستيفاء الخطي في الطرف الآخر ، يأخذ المتوسط ​​المرجح (خطيًا) لأقرب أربعة بكسلات حول بكسل الوجهة. يؤدي هذا إلى إقحام التدرجات بطلاقة وتشوش الحواف. تستخدم العديد من الخوارزميات الأخرى أوزانًا مختلفة و / أو المزيد من وحدات البكسل لاشتقاق بكسل الوجهة من مجموعة محيطة من وحدات البكسل المصدر.

السبب وراء هذه الخوارزميات هو أنه يجب تقريب قيمة بكسل الوجهة من قيم وحدات البكسل المحيطة بالمصدر. ولكن يمكنك القيام بما هو أفضل من مجرد أخذ المسافات إلى وحدات البكسل المحيطة ومجموعة من عوامل الوزن الثابتة المخزنة في مصفوفة. الاستيفاء الاتجاهي هو طريقة تحاول الاستيفاء على طول حواف في الصورة ، لا عير معهم.

تم تحفيز اهتمامي في الاستيفاء الاتجاهي من خلال ورقتين. في [6] استخدم المؤلفون الاستيفاء متعدد الحدود مع أوزان تعتمد على التدرج. لحساب التدرجات اللونية ، تطبق الورقة زوجًا من أقنعة Sobel على كل بكسل مصدر يشارك في الاستيفاء. تقسم الخوارزمية في [7] بكسل المصدر إلى أربعة بكسلات مستهدفة في مسار واحد ، مع الأخذ في الاعتبار ثمانية وحدات بكسل إضافية محيطة (تسعة بيكسلات مصدر إجمالاً). من خلال تطبيق مصفوفة بأوزان محسوبة مسبقًا لكل علاقة بين وحدات البكسل التسعة ، يتم حساب قيمة كل بكسل من وحدات البكسل الأربعة المستهدفة.

تحتوي الخوارزمية الموجودة في [6] على عمليات بسيطة إلى حد ما على كل بكسل مصدر تعتبره لكل بكسل هدف ، ولكنها تعتبر مجموعة كبيرة من وحدات البكسل المصدر. هذا هو عنق الزجاجة الرئيسية في الأداء. تستخدم الورقة الأخرى ([7]) عددًا قليلاً من وحدات البكسل المحيطة وتحسب أربع وحدات بكسل الوجهة في مسار واحد ، لكن مقدار الحساب المطلوب للحساب يجعلها غير مناسبة للقياس في الوقت الفعلي. لا يمكن تكييف أي من الخوارزمية بسهولة مع الصور الملونة ، حيث يتم اعتبار الصورة الملونة كصورة ثلاثية القنوات حيث يجب تغيير حجم كل قناة على حدة.

الفكرة ، إذن ، هي دمج المفاهيم من الورقتين ، ولكن بتكلفة أقل: عمليات بسيطة على عدد قليل من وحدات البكسل المصدر لكل بكسل مستهدف.

تتطلب خوارزمية الاستيفاء الاتجاهي العثور على الحواف أولاً ، أو بالأحرى تحديد اتجاه التدرج اللوني عند كل بكسل. بينما تستخدم الورقة [6] حجم التدرج فقط ، [7] تراعي أيضًا اتجاهها لصالحها. أجهزة كشف الحواف البسيطة المناسبة للعثور على التدرج اللوني (الحجم والاتجاه) ، هي أزواج من أقنعة روبرتس أو أقنعة سوبل. في الشكل أدناه ، يتم وضع أقنعة روبرتس في مصفوفات 3 مرات و 3 ، ولكن ، كما ترى ، فإن حساب قيمة قناع واحد يتضمن عملية طرح واحدة فقط. يكتشف إما قناع روبرتس حافة في اتجاه قطري. من اثنين القيم ، يمكنك حساب كل من اتجاه التدرج و "شدة" التدرج. يوضح الشكل الآخر أدناه زوجًا من أقنعة Sobel ، حيث يكتشف قناع Sobel حافة في الاتجاه الأفقي أو الرأسي ، ومثل أقنعة روبرتس ، يتم دمج أقنعة سوبل للحصول على معلومات التدرج الكامل. بالنظر إلى اتجاه التدرج اللوني ، يمكنني بعد ذلك اختيار محرف اتجاهي مناسب. هذه المُقْحِمات خطية فقط ، وليست ثنائية السطور.

من المعروف أن أقنعة روبرتس حساسة للضوضاء: فهي تميل إلى اكتشاف الحافة حيث لا توجد حافة حقيقية. نظرًا لأن هدفي هو ببساطة الاختيار بين المحرفين ، فقد أدركت أن اختيار محرف اتجاهي على بكسل حيث لا توجد حافة ، لن يكون مهمًا كثيرًا. ومع ذلك ، لم أتوقع أن حساسية أقنعة روبرتس قد تؤدي أيضًا إلى إعادة ملف اتجاه خاطئ من التدرج في وجود حافة. هذا الخلل يجعل أقنعة روبرتس غير مناسبة للاستيفاء الاتجاهي. تعتبر أقنعة سوبل بشكل عام قوية بينما لا تزال بسيطة. إنهم يعتبرون ثلاثة أضعاف عدد وحدات البكسل المصدر ، لذا يجب أن يكون تقديرهم لاتجاه التدرج أكثر دقة بشكل ملحوظ. لكن لدهشتي ، وجدت أن أقنعة Sobel ستفقد تمامًا خطًا أفقيًا أو رأسيًا بعرض بكسل واحد يمر عبر منتصف الأقنعة. خط قطري عريض من بكسل واحد بزاوية 45 درجة أو 135 درجة مفقود أيضًا. في كل من صورة اختبار الرسم الخطي الخاصة بي وفي صورة Lena ، ثبت أن هذا يسبب "ضوضاء" شديدة بسبب اتجاهات التدرج المحددة بشكل خاطئ. لقد جربت مجموعات من أقنعة روبرتس وسوبيل ، لكن هذه لم تنجح.

الخلل في النهج أعلاه هو أن منطقة 9 بكسل صغيرة جدًا لتحديد اتجاه الحافة التي تمر عبر البكسل الأوسط ، والذي ربما يكون قد صادفه مؤلفو [6] أيضًا. بدلاً من اختيار نواة أكبر لاكتشاف الحواف ، قررت تقسيم كل بكسل مصدر إلى أربعة بكسلات مستهدفة ، كما هو الحال في [7] ، وإيجاد شريك الاستيفاء لكل بكسل مستهدف (لذلك قد يكون لبكسل مصدر واحد أربعة شركاء استيفاء مختلفين). يحسب هذا الأسلوب الجديد أربعة تدرجات لكل بكسل مصدر. يمثل الشكل الموجود على يمين هذه الفقرة تسعة بكسلات من الصورة المصدر. لحساب بكسل الهدف للربع الأيسر العلوي لبكسل المصدر الأوسط ، تأخذ الخوارزمية في الاعتبار وحدات البكسل المصدر 0 و 1 و 3 و 4. وتجد الاتجاه الذي يحتوي على أقل تدرج في هذه المنطقة من أربعة بكسلات مصدر وتستخدم ذلك لتحديد مرشحي الاستيفاء. على الرغم من أنه كان بإمكاني استخدام زوج من أقنعة روبرتس للحصول على اتجاه التدرج اللوني ، فإن اختيار الحد الأدنى للمسافة بين أي من الأزواج الأربعة المحتملة من وحدات البكسل الأربعة قيد الدراسة كان أكثر فعالية وأبسط في الواقع في التنفيذ.

الخوارزمية بسيطة من الناحية المفاهيمية: من بين جميع وحدات البكسل المصدر قيد الدراسة ، يتم إقحامها بين زوج من وحدات البكسل مع أدنى فرق. قد يكون بكسل الهدف العلوي الأيسر:

  1. محرف بين مصدر بكسل 4 و 1 ،
  2. محرف بين مصدر بكسل 4 و 3 ،
  3. محرف بين وحدات البكسل المصدر 4 و 0 أو
  4. محرف بين مصدر بكسل 4 ومتوسط ​​بكسل المصدر 1 و 3.

تتمثل الخطوة الأولى في حساب الاختلافات بين أزواج وحدات البكسل المصدر 4-1 و4-3 و4-0 و 3-1. في الواقع ، أنا لست مهتمًا بعلامة الاختلافات ، فقط المسافات. تحدد الخوارزمية الحد الأدنى للمسافة وتختار المحرف المناسب. الاستيفاء ، في هذا السياق بالذات ، يعني فقط متوسط ​​(غير مرجح) لذلك في حالة المحرف الأول ، يكون لون البكسل الهدف هو منتصف المسافة بين وحدات البكسل المصدر 4 و 1.

مقتطف الشفرة أدناه يحسب بكسل الهدف "أعلى اليسار" لبيكسل المصدر عند الإحداثي (س ، ص). باستخدام إجراء مماثل ، يحصل المرء على وحدات البكسل المستهدفة الثلاثة الأخرى لبكسل المصدر هذا.

في تطبيق مبكر ، قام المحرف الأخير بتعيين البكسل المستهدف على متوسط ​​وحدات البكسل المصدر 1 و 3. أثناء الاختبار ، وجدت أنني حصلت على نتائج أفضل من خلال حساب متوسط ​​بكسل المصدر 4 بعد ذلك أيضًا. نظرًا لعمليتي المتوسط ​​المتتاليتين ، يتم تعيين لون البكسل المستهدف في النهاية على & frac12S4 + & frac14S1 + & frac14S3 (اينأنا لتقف على "مصدر بكسل أنا").

الصور أدناه تقارن خوارزمية المتوسط ​​الاتجاهي مع الاستيفاء ثنائي الخطي والمكعب. يحقق الاستيفاء الاتجاهي نتائج أكثر وضوحًا من الاستيفاء ثنائي الخطي والمتكعب. لاحظ أن صورة "الرسومات الخطية" الأصلية تم إنشاؤها عن قصد بدون صقل. من المتوقع أن يحتوي الإخراج على "jaggies" أيضًا.

الرسومات الخطية - مع "jaggies" ومناطق ناعمة

الصورة الأصلية

200% - متوسط ​​الاتجاه

200٪ - استيفاء خطي

200٪ - الاستيفاء Bicubic

"لينا" - 128 × 128 بكسل للصورة القياسية

الصورة الأصلية

200% - متوسط ​​الاتجاه

200٪ - استيفاء خطي

200٪ - الاستيفاء Bicubic

مسافات ألوان سريعة وتقريبية

لكي تكون خوارزمية قياس المتوسط ​​الاتجاهي ممكنة ، يجب أن يكون لديك طريقة لتحديد الفرق بين ألوان وحدتي بكسل. في مقتطف الشفرة الخاص بالتكبير بمقدار 2 ، يكون هذا مخفيًا في ملف كولورديف () وظيفة. من المحتمل أيضًا أن يصبح حساب "فرق البكسل" هو عنق الزجاجة في أداء التطبيق ، وهذا هو السبب في أنني سأوليه مزيدًا من الاهتمام.

بالنسبة إلى وحدات البكسل ذات المقياس الرمادي ، يكون حساب مسافة البكسل بسيطًا مثل أخذ القيمة المطلقة لطرح زوج من البكسل. تسمح لك تعليمات SIMD ("تعليمات مفردة ، بيانات متعددة" ، المعروفة سابقًا باسم MMX) الخاصة بمعالجات Intel Pentium الحالية بالحصول على قيم مطلقة لأربع قيم 16 بت موقعة بالتوازي ، باستخدام بعض الإرشادات فقط. على سبيل المثال الكود ، انظر [4].

بالنسبة للصور الملونة الحقيقية ذات 24 بت ، لديك عدة خيارات لحساب مسافة البكسل:

  • استخدم مقياسًا دقيقًا لمسافة اللون ، مثل طول المتجه الإقليدي في مساحة RGB ثلاثية الأبعاد. ربما يكون هذا بطيئًا جدًا بالنسبة لأغراضنا ، كما أنه أكثر دقة بكثير مما نحتاج إليه.
  • قم بتحويل كلا البكسل إلى مقياس رمادي ، ثم احسب المسافة بين قيم التدرج الرمادي. اعتمادًا على كيفية حساب معادلات التدرج الرمادي لوحدات البكسل اللونية ، قد يظل هذا الإجراء بطيئًا إلى حد ما.
  • احسب الفروق لكل القنوات الثلاث بشكل منفصل واحسب أكبر قيمة من هذه القيم الثلاث.
  • قم بتداخل البتات لقيم القناة باللون الأحمر والأخضر والأزرق وحدد الفرق بين قيمتين مشذرتين.

أقترح الطريقة المذكورة أخيرًا: تشذير البتات. تم استخدام تشذير البتات على نطاق واسع لإنشاء فهارس (قاعدة بيانات) ولإيجاد مجموعات في مجموعات البيانات المكانية ، وتحديداً عندما يتم تمثيل مجموعة البيانات في شكل رباعي أو ثماني. يعد تطبيق تشذير البتات على مكعب ألوان RGB للعثور على اختلافات اللون التقريبية امتدادًا مباشرًا ، انظر [3].

تشذير البت هو في الواقع خدعة بسيطة حيث يتم تخزين لون RGB في ثلاثة بايت بترميز مثل:

مجموعات التشفير الجديدة بتات لها نفس الأهمية معًا والطرح بين اثنين من هذه القيم المشذرة هو بالتالي مقياس عادل للمسافة بين الألوان. لحساب الترميز المتداخل بسرعة ، يستخدم المرء جدول بحث محسوب مسبقًا يعيّن قيمة إدخال (في النطاق 0 & ndash 255) إلى الترميز:

التحسينات والملاحظات الأخرى

كما ذكرنا سابقًا ، من المحتمل أن تصبح خوارزمية فرق البكسل العامل المحدد في أداء الروتين. تم بالفعل ذكر خدعة تحسين خاصة بالتنفيذ: استغلال التوازي باستخدام تعليمات SIMD. هناك أيضًا بعض التحسينات الخوارزمية التي تساعد. في مقتطف الشفرة الخاص بالتكبير بمقدار 2 ، يمكننا حساب أننا بحاجة إلى حساب مسافات أربعة بكسل لكل بكسل هدف. لأربعة بكسلات مستهدفة لكل بكسل مصدر ، يبلغ هذا مسافات تصل إلى 16 بكسل. تتمثل الفرصة الأولى للتحسين في إدراك وجود تداخل في وحدات البكسل المجاورة المستخدمة لكل بكسل من وحدات البكسل المستهدفة ، انظر الشكل 6 على اليمين. عند تجميع حسابات جميع مسافات البكسل لبكسل مصدر واحد (أربعة بكسلات مستهدفة) ، يرى المرء أن هناك 12 مسافة بكسل فريدة يجب حسابها & mdashal بالفعل توفير 25٪ من 16 الأصلي.

بالإضافة إلى ذلك ، يوجد تداخل في مسافات البكسل اللازمة لـ تيار مصدر بكسل وتلك الخاصة بـ التالي مصدر بكسل. يستخدم كل مصدر بكسل مسافات خمسة بكسل مشتركة مع تلك الخاصة بالبكسل السابق. هذا يجعل عدد مسافات البكسل التي سيتم حسابها أقل من 7 لكل بكسل مصدر. في الشكل الموجود على يمين هذه الفقرة ، تشير الأسهم الزرقاء والحمراء إلى مسافات ملف تيار بكسل والسهام الحمراء والخضراء تلك الخاصة بـ التالي بكسل. وبالتالي ، فإن الأسهم الحمراء الخمسة هي حسابات مسافة البكسل المشتركة بين البكسل الحالي والتالي.

عند التفكير في تحسين خاص بالتنفيذ ، وتحديداً تعليمات SIMD ، من المفيد تقليل دقة القيم المشذرة بت. كما هو مطبق في مقتطف الشفرة لتشذير البت ، تأخذ القيمة المشذرة 24 بت. هذا دقيق للغاية فقط للعثور على شريك الاستيفاء ، خاصةً لأن الاختلاف بين قيمتين متداخلة ليس سوى تقريبي قياس المسافة بين اللونين. إذا قللنا هذا إلى 15 بت ، ببساطة عن طريق إنشاء InterleaveTable بشكل مختلف ، الطرح بين اثنين من هذه القيم يناسب 16 بت. كما ذكرنا سابقًا ، يمكن لمعالجات Intel الحديثة حساب القيمة المطلقة لأربع قيم 16 بت بالتوازي.

هناك فرصة أخرى لتحسين رمز التكبير بمقدار اثنين وهي سلسلة لو عبارات للعثور على الحد الأدنى من القيمة. تسلسل من CMP و CMOV يمكن للتعليمات (معالج Pentium-II والإصدارات الأحدث) حساب القيمة الدنيا بدون قفزات (وبالتالي بدون عقوبات على الفروع التي تم التوقع بها بشكل خاطئ). يمكن أن تساعد تعليمات SIMD هنا أيضًا: ملاحظة تطبيق Intel ([5]) تصف ملف PMINSW التعليمات التي تحدد القيم الأربع الدنيا لمجموعتين من أربع قيم ذات 16 بت. مع ثلاثة PMINSW التعليمات ، بالإضافة إلى بعض خلط الذاكرة (تلميح: PSHUFW) ، يمكننا إيجاد القيم الأربع الدنيا لأربع مجموعات من هذا القبيل.

وكما كان الحال مع خوارزمية التصغير ، قد ترغب في إدخال متغيرات محلية إضافية لتجنب حساب نفس القيم مرارًا وتكرارًا في الحلقة الداخلية. أمثلة على هذه التعبيرات في التكبير برمزين هي y * SrcWidth, y2 * TgtWidth. يتيح لك القيام بذلك على الفور تبسيط تعبيرات الحلقة الداخلية الأخرى مثل (y2 + 1) * TgtWidth ل Y2TgtWidth + TgtWidth، مع استبدال الضرب بجمع (المتغير الجديد Y2TgtWidth سيتم تعيين قيمة y2 * TgtWidth في الجزء العلوي من الحلقة الداخلية).

حاليًا ، تقوم خوارزمية قياس المتوسط ​​الاتجاهي بإقحام فقط في اتجاه واحد لكل بكسل هدف ، على الرغم من أن هذا الاتجاه خطي. إحدى القواعد الإضافية ، التي قد تزيد من جودة النتيجة ، هي استخدام متوسط ​​ثنائي الاتجاه إذا كان الحد الأقصى للتدرج منخفضًا. أي أنه بالإضافة إلى الحد الأدنى من التدرج اللوني لكل بكسل مستهدف ، يمكنك أيضًا حساب القيمة القصوى. إذا كانت القيمة القصوى أقل من بعض الحدود المشفرة ، فإن البكسل المستهدف يحصل على قيمة متوسط ​​أربع وحدات بكسل محيطة.

قراءة متعمقة


تنزيلات البيانات الشبكية

بالنسبة إلى البيانات الشبكية ، استخدم إما download_daymet_tiles () للبلاط الفردي أو download_daymet_ncss () لمجموعة فرعية netCDF غير مرتبطة بحدود التجانب (ولكنها مقيدة بحجم استعلام 6 جيجابايت). نظرًا للحجم الأكبر (الافتراضي) للبيانات المتجانبة ، سأوضح استخدام البيانات المتجانبة مع مجموعة بيانات أصغر من مجموعة البيانات ذات المتوسط ​​الشهري لمنطقة صغيرة (بحجم التجانب الفرعي). توضح الاستعلامات أدناه مجموعة متنوعة من الطرق حول كيفية تنزيل البيانات القائمة على التجانب والمجموعات الفرعية من البيانات المتاحة. يمكنك الاستعلام عن البيانات بناءً على رقم المربع ، أو الموقع الجغرافي والمتغيرات المناخية المطلوبة. يتوفر وصف كامل لمعامل الوظيفة في الجدول أدناه.

معامل وصف
موقعك مدى الصندوق المحيط مُعرَّف على أنه الزوج العلوي الأيسر / السفلي الأيمن c (خطوط الطول ، خطوط العرض ، الطول)
بداية سنة بداية السلسلة الزمنية (تبدأ البيانات عام 1980)
نهاية سنة نهاية السلسلة الزمنية (السنة الحالية - سنتان / للسلامة ، قم بتعديل هذا الفحص ليعكس البيانات المتاحة حاليًا)
تكرر ما هي الخطوة الزمنية الزمنية التي يجب استخدامها (يوميًا أو شهريًا أو سنويًا) فقط لمجموعات فرعية NCSS
طريق الموقع حيث يتم تخزين البيانات الشبكية التي تم تنزيلها
صامتة قمع تقدم التنزيل
بارام متغير المناخ الذي تريد تنزيل ضغط البخار (vp) ، ودرجة الحرارة الدنيا والقصوى (tmin ، tmax) ، مكافئ مياه الثلج (swe) ، الإشعاع الشمسي (srad) ، هطول الأمطار (prcp) ، طول اليوم (dayl). الإعداد الافتراضي هو ALL ، سيؤدي ذلك إلى تنزيل جميع متغيرات المناخ المذكورة سابقًا.

بالنسبة للمجموعات الفرعية لبيانات netCDF ، ضع في اعتبارك أن المربع المحيط محدد بواسطة الحد الأدنى (المربع) من المربع المحيط في إسقاط Lambert Conformal Conic (LCC) كما هو محدد بواسطة الإحداثيات الجغرافية المتوفرة. بشكل عام ، ستكون منطقة الاستعلام أكبر من الموقع المطلوب. لمزيد من المعلومات ، أشير إلى وثائق Daymet (https://daymet.ornl.gov/web_services.html) على خدمة الويب.

تتضمن حزمة daymet أيضًا إطار بيانات مكانيًا مضلعًا يحدد جميع المربعات في مستودع Daymet (Tile_outlines). يمكن استخدام هذه البيانات لاستخراج جميع المربعات ذات الصلة لتحليل عن طريق حساب التقاطع بين منطقة جغرافية مهمة وهذا الملف.

الاستعلام عن البيانات المتجانبة

ستجد أدناه بعض الأمثلة على الاستعلامات لنفس المربع (11207) باستخدام كل من الإحداثيات الجغرافية بالإضافة إلى رقم المربع. في أول استدعاء وظيفة الكل يتم طلب معلمات المناخ ، بينما في استدعاء الوظيفة الثانية يتم الاستعلام فقط عن درجة الحرارة الدنيا (tmin).

الاستعلام عن بيانات المجموعة الفرعية netCDF (ncss)

تتبع الاستعلامات الخاصة ببيانات NCSS بناء جملة مشابهًا لتلك الخاصة بالبيانات المتجانبة. ومع ذلك ، فأنت مقيد باستخدام المربعات المحيطة القائمة على الموقع لاستخراج مجموعات فرعية من البيانات الشبكية. بالإضافة إلى البيانات اليومية ، تشتمل مجموعات ncss الفرعية أيضًا على قيم ملخص مُعالجة مسبقًا ، على سبيل المثال متوسط ​​درجات الحرارة الدنيا والقصوى الشهرية أو إجمالي هطول الأمطار الشهري.

يوضح الشكل أعلاه بشكل جيد كيف يمكنك الاستعلام عن مجموعة فرعية صغيرة من بيانات Daymet. ومع ذلك ، متغير مناخي شائع ، لا يتم توفير متوسط ​​درجة الحرارة. على هذا النحو يمكنك حساب هذه القيم باستخدام دالة daymet_grid_tmean (). تحسب هذه الوظيفة متوسط ​​درجة الحرارة لمجموعة فرعية معينة من البلاط / أو ncss بشرط أن يتم العثور على الحد الأدنى والأقصى لملفات netCDF المطابقة في نفس الدليل.


وظائف الكائن

لاستخدام دالة كائن ، حدد كائن النظام & # x2122 كأول وسيطة إدخال. على سبيل المثال ، لتحرير موارد النظام لكائن النظام المسمى obj ، استخدم بناء الجملة هذا:

مشترك لجميع كائنات النظام

خطوة تشغيل خوارزمية كائن النظام
إفراج Release resources and allow changes to System object property values and input characteristics
reset Reset internal states of System object

Water Boards Data and Databases

The State Water Resources Control Board (State Water Board) and Regional Water Quality Control Boards (Regional Boards and collectively, the Water Boards) directs and collects vast amounts of data and information on the state&rsquos water quality, quantity, and uses, as well as the agency business operations. On July 10, 2018, the State Water Board adopted an Open Data Resolution (Resolution No. 2018-0032) to increase the focus on data management and accessibility at the Water Board. The Water Boards Strategic Data Action Plan describes a set of strategic actions that, when implemented, would significantly improve the way we manage and use data and information for both internal facing operations and external facing decisions about California&rsquos valuable water resources.

Accessing Data

A subset of the datasets maintained by the Water Boards can be found on the State of California's Open Data Portal under the 'Water' category. That platform provides web services that enhance data accessibility, and we plan to continue adding datasets to that platform in the future. Note that the datasets found on that site mirror some of the datasets described in the table below.

For questions regarding a specific database or dataset, please use the contact information provided for that program or database. For general questions regarding the content covered in this webpage, or if you cannot locate the contact information for a specific database, please contact the Water Boards' Office of Information Management and Analysis (OIMA) at [email protected]

Should another publicly available Water Boards dataset or database be added to this list? Let us know!

Stay Informed

  • General Interests
    • CEDEN - California Environmental Data Exchange Network
    • Monitoring Council Workgroups & My Water Quality Portals
    • Citizen Monitoring Program / Clean Water Team
    • SWAMP Water Quality Monitoring (Surface Water Ambient Monitoring Program)

    Quick Links


    BrainMaker

    The basic BrainMaker consists of 3 orthogonal Views of slices through an image volume, a Main Menu, and a Mask Menu. Additional menus extend the basic functionality.

    The images to the left show a ROI drawn on a MRI image and applied to (or overlaid on) a PET image. This is frequently done because MRI has better resolution than PET and also because the two modalities yield different information MRI looks at anatomy or morphology, whereas PET examines a physiological process. The two modalities are complementary, and using information from the MRI data lets you accurately extract PET data from the desired anatomic location.

    The picture above shows BrainMaker's compact Main Menu. Items are described from left to right. Really obvious items needing no explanation are. not explained.

    Filenames: There are four (4) catagories that any image file can be slotted into.

    1. Image: The primary display image.
    2. Over: An image overlaid in a semi-transparent fashion on the main image.
    3. Mask: All non-zero pixels in this image will be added to the current mask upon reading it in.
    4. Alt: An alternate coregistered image that is displayed in a fourth display window.

    All image files are read by clicking on the desired category and using the pop-up menu shown below:

    To browse for a file, click "Read". A standard browser appears. After accepting the filename in the browser, the image is actually read inot memory. For large images this may take a few seconds. After you regain control of the cursor, click "OK" to pass the image data into BrainMaker. You can select from a list of recently visited directories via "Current Directory".

    Quit: Unceremoniously quits from BrainMaker. Any unsaved changes will be lost.

    Info: Click this button to see summary information about the image data.

    Info Box: Displays the data value and its coordinates for the pixel under the mouse cursor. The coordinates are 1-based (i.e. the image coordinates range from 1 to the image dimension). The image dimensions are displayed underneath the Info Box. When the cursor is passed over a button, a brief description of the button function appears in the Info Box.

    A little-known secret: the Info Box is interactive! You can type in it to set certain parameters. Type "Help" or "?" to see the current options. Features include:

    • Type "Help" or "?" for information regarding this feature.
    • Display image values averaged over nearby pixels instead of the value for the single pixel under the cursor.
    • Type in [x.y.z] coordinates (in pixels) and hit "Return" to move to that location in the image.
    • Control the grid parameters. Type "grid" to see current parameters.

    Hot Keys: There are several Hot Keys for BrainMaker. These work with linux and Mac, but not (so far) with Windows.

    • Arrow Up: Nudge VOI up one voxel.
    • Arrow Down: Nudge VOI down.
    • Arrow Left: Nudge VOI left.
    • Arrow Right: Nudge VOI right.
    • < or , : Move current location backward one plane.
    • > or . : Move current location forward one plane.
    • u or r: Move current location up or to the right.
    • d or l: Move current location down or the left.
    • The preceding actions can be magnified by using Shift, Ctrl, Alt keys.
    • Ctrl X: Cut the current 2D ROI, move to clipboard.
    • Ctrl C: Copy the current 2D ROI to the clipboard.
    • Ctrl V: Paste the contents of the clipboard onto the current ViewSlice.
    • h : Hide or unhide the ROI display (useful to see underneath the ROI).

    These hot keys will act upon whichever of the ViewSlice display windows is active. You may have to click inside the desired window with the middle mouse button to coerce it to become the active window.

    Active View Buttons: Although you can draw on any of the 3 orthogonal views, only one view is ever considered "active". This is normally the one you are drawing on, or the view you drew upon most recently. For most operations the active view is irrelevant. However, occasionally it is important- these situations are discussed under the pertinent menu items. The active view is designated by the button shown in color (e.g., the axial view in the picture above). You can click on these buttons to force one of the views to be active. It is important to note that, although the buttons (and views) are designated as "axial", "coronal", and "sagittal", these are only labels- BrainMaker does not know (or care) if the labels are accurate. The labels are only correct for axially oriented images with the anterior region appearing at the top or bottom of the image.

    Window Manager Settings: The operating system (OS) and the window manager settings you have set on your computer can influence how BrainMaker performs. This is particularly relevant for the Hot Keys, Active View buttons, and the Refresh button. For more details, see these Window Manager hints.

    Caliper Button: Permits precise measure of distance between two points. This button toggles between two states. The normal state lets you draw ROIs using the cursor, and the caliper is OFF. When the caliper is ON, it is highlighted in red. Click the mouse on a point on the image, hold the left mouse button down and drag to a second point, and release the button. A line will be drawn between the points and the length of the line (mm) is displayed.

    Grid Marker Button: Toggles grid marks off and on. The grid provides a handy set of reference lines for navigation, surgery planning, etc. The current location when you toggle the grid on is used as the reference point, with grid distances calculated from this point. Type "grid" in the Info Box to see current parameters. Type "?" in the Info Box to see how to change grid parameters. You can change the following parameters: grid spacing (mm), grid color, grid origin, lock/unlock the reference point. The lock/unlock featue is handy if you want to toggle the grid without resetting the origin. The grid spacing is specified in millimeters from the grid origin, and is accurate to within approximately 1/2 of a pixel distance. Any smaller than this and you are just splitting hairs. The grid origin is specified in terms of pixels (row, column, plane) and is 0-based instead of most similar BrainMaker parameters which are 1-based.

    The image below shows an example of the grid overlay. The dotted line shows the grid "origin" or reference point, centered approximately on the anterior commissure. The curernt location was moved away from the AC by navigating with the middle mouse button. The current location is indicated by the yellow crosshairs.

    The following two images show views in other planes (lateral sagittal (left) and coronal (right). The distance of each image plane from the AC is shown in the lower left corner of the image. All other features of BrainMaker remain available when the grid is toggled on.

    Refresh: Updates all of the images in case something got out of sync. Unhides the ROI if you hid it by mistake. Also pops all Views to the front in case they got lost. Finally, frees up memory if pointers or objects have become orphaned. Like most refreshments, this is good for what ails you.

    Write images as: There are several options for image output: ANALYZE-7.5, AFNI, or EZZ. The default is ANALYZE, which is compatible with most other medical imaging programs. AFNI format is only available if you have AFNI installed on your system and designate the location in the defaults file. EZZ is a versatile file format that supports multiple dimensions, RGB, DTI, etc. All data written to an image file will be output in the selected format if available.

    تحديث: Designates how images are updated. Options include:

    • None: Just what it sounds like. Not very useful unless you want to lock a view in place.
    • Move: Updates the image display and location information for every movement of the cursor. This can get a bit frenetic and makes it difficult to draw a single VOI in multiple views.
    • Click: Image display and location info are only updated when the mouse is clicked in the image.
    • Hybrid: Image display is only updated for a mouse click, but the location and pixel values are shown as the mouse is moved across the iamge. This is the default and seems to work the best for most users.

    Zoom: Increase or decrease the image display size. BrainMaker uses a set of rules to attempt to size the display for a nice balance between screen size and image size when it first reads in the image. After that you can change the size as you wish. The Zoom button changes the size of all images. You can type in any floating point number you want (hit "Return" when you finish typing!) or use the up/down arrows to change by increments of 1.0. Zoom=1.0 means that there is a 1-to-1 correspondence between image pixels and screen pixels.Values smaller than 1.0 shrink the image, larger values expand it.

    This is a good spot to mention that BrainMaker does NOT take into account pixel size when it displays images. This means that if, for instance, the axial slices are 5.0 mm thick (Z pixel dimension), but the inplane (X- and Y-pixel dimensions) are 2.0 mm, the image will appear shrunken in the z-dimension. The only way to avoid this is to reslice the image to have cubic voxels, so the voxels themselves have the same dimension in all 3 dimensions. This is sometimes annoying, but is a conscious design decision to facilitate VOI fidelity.

    Each of the individual Views can be zoomed individually by dragging one of the corners of the View to the desired size. (This has been known to fail under some opertaing systems.) The aspect ratio of the image array is always preserved.

    Crosshair: Designates the type of crosshair shown. Pretty self-explanatory, except "Stub", which shows a small, stubby marker at the image edge. This is handy if want to know where you are within the volume but also want to see the entire image. The "Color" button to the right lets you select the crosshair color.

    Image: Set various display parameters:. Asterisks denote default parameters.

    • Range3D* : Use the full range of the 3D image volume to set the upper and lower limits of the color table. Using "Range3D" means that a particular value will have the same color in all views of the image.
    • Range2D: Use the minimum, maximum values in the visible 2D image to scale the color table. This is handy when you have large outliers in some of the planes that squeeze the rest of the values into a few colors. However, values will not necessarily have the same color from one plane to the next.
    • No Scale* : No scaling is applied to the image data prior to display. This serves as the antidote to the following scaling options.
    • sqrt : The square root of the data is taken and displayed. This helps to compress large outliers.
    • ln : The natural logarithm is displayed.
    • sqrt(ln) : The square root of the natural log is displayed. At this point you have left the realm of science.
    • Sample*: Designates the type of interpolation used when zooming the iamge. "Sample" shows a pixelated display, with the value for each pixel replicated over a square region.
    • Smooth: uses a bilinear interpolation and makes more visually pleasing images, but there is a problem with the image shifting to the left and down. (I have tried unsuccesfully to fix this- don't ask again!) "Sample" is the default because, in a VOI drawing program, it is important to know the actual extent of the underlying voxels.
    • Reset: Selects all of the default values.

    The "Color" dropdown menu to the right of the Image dropdown menu lets you select a color table for the image (select "change"). Within the Color Table Menu, you can select from about 50 color schemes, and modify each table. Select "show" to show the color table underneath each image.

    Tools: This dropdown menu provides a compact launching point for several important tools. The more important tools have their own section but are mentioned here:

      : Manages VOIs: Store, retrieve, name VOIs and apply them to other data.
  • Center-of-Mass: Moves the current location to the Center-of-Mass of the VOI. Displays an interactive histogram of the main and Alt images. Permits pixel selection by drawing on the histogram.
  • ShowSlices: Displays all 2D slices in an image, with an overlay if desired.
  • Write Masked Base/Over/Alt: Apply the current VOI to an image and write only the masked pixels.
  • Write JPEGs: Write a JPEG image for each of the active ViewSlices.
  • Help: Brief description of each of these tools.
  • Mask Edit Parameters: Lets you change the color and size of the dots used to represent the mask. Currently, the only option for displaying the mask is as a field of small dots, Each pixel included in the mask has a single dot centered on it. Increasing the thickness makes the dots easier to see but obscures the underlying image.

    Undo: Most VOI draw/erase actions are recorded, permitting you to undo up to 10 sequential actions. The action you took (Draw, Erase, etc.) and the number of affected voxels are displayed in the text-box. Since the affected voxels need to be stored in memory, certain actions which are potentially very large are excluded from Undo. Such actions include 3D volumetric search, Histogram searches, and morphometric operations. An alternative to Undo is simply to save a series of VOIs as you work, so you can revert to an earlier one if desired. If you run into memory problems, unchecking the "Allow" button will free up the memory required to store the undo operations.

    Right Mouse Function: You can designate the functionality for the right mouse button. The default is to use it for erasing a VOI (the left mouse button is used to draw a VOI). You can also select "page", which leets you page through slices in a View by clicking with the left mouse. Clicking above the center of the image will page up (superiorly), clicking below the image center will page "down". The farther from the center you click, the more slices you will page through or "skip". For the record, the middle mouse button is always used to change the location (browse through the image volume) without drawing a VOI.

    Draw/Erase buttons: When the right mouse is set up to page, the left mouse button performs double duty. You must explicitly designate whether you are drawing or erasing by clicking on the appropriate button. If you are in Draw mode, the Draw button (on left, shows a pencil with the drawing tip down) has a bright yellow background. In Erase mode the Erase button (on right, shows a pencil with the eraser down) has a bright yellow background. Note that the Draw/Erase functionality extends to some operations such as 3D search (see below)- if the last operation involved an Erase, the search will result in erasing all of the voxels identified. This can be handt to erase voxels but can be confusing the first time you forgot to turn on Draw when you were trying to add voxels to the mask.

    On linux/unix/Mac, you can page through the currently activeView by using the arrow keys (up/down) and some of the Control/letter combinations (Ctrl-U, Ctrl-D). However, on Windows this does not work, so you need to designate the right mouse for paging. Another workaround is to use a different, good OS.

    Cut / Copy / Paste: Each of these operations is performed relative to the currently active View. All of the masked voxels in the active View can be Cut (deleted). Although removed from the mask, Cut voxels are stored in a clipboard-like area, so you can later Paste them into the same or another slice. Copy is handy of there are several adjacent slices which should have the same mask- Copy from one slice, move to another, and Paste into it. You should experiment with these operations before you start on an important project. Although the operations are predictable, you need some esperience to make the correct prediction. Luckily, these operations are supported by Undo.

    Delete Mask: Deletes the entire working mask, setting all mask vaxels to zero. This only affects the working mask VOIs in the VOI-Group are unaffected. A warning message appears asking if you are sure you want to delete the mask- normally you should click on "Yes".

    Draw Mode: There are 5 different modes for draw/erase using the cursor:

    • Voxelwise: Click on a single voxel to add/delete it. Click and drag to add a line of voxels. Change the paintbrush size by clicking on one of the 3 buttons in the row underneath- options are for a single pixel, 3x3 array, or 9x9 array.
    • Freehand: Click and drag to define a region. Releasing the cursor closes the region. This is the default mode.
    • Corners: Click and release cursor to define a corner. Move the cursor to the next corner, click and release, and so on until you have defined the region. Double-click to close the region.
    • Circle: Click to define the center of the circle, drag out until the circle is the desired size, and release.
    • Rectangle: CLick to define one corner of a rectangle, drag to define the diagonal corner, and release.

    2D/3D Drawing: The dropdown menu (defualt = 2D) lets you draw in either 2 or 3 dimensions for the voxelwise, circle, and rectangle modes. In default 2D, the region is strictly within the current plane. In 3D, you are simultaneously adding voxels to the mask from adjacent (unseen) slices.

    Search 2D: Performs a connected pixel search within the active View for connected pixels. (The icon is a cartoon of a bloodhound.) Two criteria are used for searching: pixels must be similar in value to the seed pixel, and they must be physically connected to it or other connected voxels. The "seed pixel" is at the current location (under the crosshairs). The "similarity" is defined as being within X% of the seed-point's value, where X is given by "win %". The default value is 10.0. For example, if the seed value is 0.80, all voxels with a value between 0.72 - 0.88 are considered. Increasing the window percentage will tend to increase the size of the VOI.

    Search 3D: Performs a connected pixel search in 3 dimensions, searching through the entire array. Otherwise, behaves similarly as the 2D search.

    Search Source: You may designate which image array the search is performed over. The default is to search over the main Image. By designating the Over or Alt images, the same seed location is used, but the values from that image are used. Searching over the Mask is a bit different- since it is either 0 or 1, the "win %" is irrelevant. Instead, you should first designate Draw or Erase mode. Placing the cursor inside of the mask and clicking "Search" will cause all connected Mask pixels to be found. In Draw mode, only the connected pixels will be retained in Erase mode, only the connected pixels will be deleted. This feature is handy to isolate masked regions, e.g. to segment the brain from surrounding tissue. In particular, you can combine this feature with the Histogram and Morphometry features to obtain a powerful set of operations.

    Morphometry Operators (Dilate, Erode, Fill, Open): Dilate and Erode are referred to as Morphometric operators since they are used to change the shape of an object (the mask). They are complementary- Dilate expands the mask, fills in holes, and connects isolated regions, while Erode shrinks the mask, severs narrow isthmuses (isthmii?), and widens holes. A large body of literature has been devoted to these operations. Suffice it to say these are extremely useful, versatile, and fast operators. You should play around with them to see what they do with simple as well as complex shapes. "Fill" is simply Dilate then Erode, and "Open" is Erode then Dilate. You can perform these in either 2D (active View) or 3D. The 3D option actually invokes a series of 2D operators, once in each set of orthogonal slices. The "kernal" parameter sets the size of the kernal used by the morphometric operators. A kernal size of 3 (default) will span a region of 3 pixels. The larger the kernal, more pixels are affected and the coarser the effect.

    Fill Holes: Fills interior holes in the mask. This is useful if you want to fill in the ventricles to include with a whole-brain mask, but you want to leave the fine structure you painstatingly defined in the medial inferior region alone. Regions which are not already masked and also not connected to the background are added to the mask. The background seed is the [1,1,1] location. You can choose to fill regions on a slicewise or volumetric basis. Using a slicewise approach lets you fill regions that are connected to background somewhere, but not not in a given slice.

    Current mask restricts VOI: This is a handy feature. The idea is to define a tissue type you want to include, such as grey matter (GM), and then be able to draw a quick and sloppy ROI around a grey matter structure (e.g. amygdala) without worrying too much about accurate drawing. When a ROI is drawn, all non-GM voxels are removed from the ROI (see example in figure below). The associated Help button provides instructions for use. It is particularly handy to use the HistoTool to define a tissue type, then use the resulting mask to constrain subsequent VOIs.

    This pair of images illustrates BrainMaker's mask exclusion feature, where a predefined mask limits the pixel values which are accepted into a ROI. A large and sloppy ROI was drawn as shown in the far left image. With the "mask restriction" mode enabled using a GM mask, the grey-matter pixels are the only ones that are included in the resulting ROI white matter and CSF have been excluded. This feature can drastically reduce the amount of time spent drawing many types of VOIs.

    Write mask: Writes the current working VOI mask to a 3D image file. Non-mask pixels are set to zero, while masked pixels have a value of 1. The actual value of the masked pixels can be changed to another integer value if desired.

    BrainMaker Components:

    BrainMaker is written as an IDL Object, called "ViewVol". It is designed to be used as either a standalone program, as in BrainMaker, but it could also be incorporated as a modular unit of another uber-program. The 3 Views are actually instances of the same underlying object "ViewSlice". Most of the functionality of BrainMaker is contained within the ViewSlice objects, such as drawing, display, overlay, color tables, connected pixel search, etc. ViewVol is responsible for coordinating between the several ViewSlice instances. The Alt view is another ViewSlice which contains its own Options Menu, so the color table can be independent of the main image. Other IDL Objects used in BrainMaker include HistoTool, VOIGroup, and Undo. Each of the objects is designed to be plugged into other applications. Contact Terry if you have questions about how to use these objects in your own programming efforts!


    شاهد الفيديو: لعبة بكسل قن اصطوري جربوه