ফাঁকা চিত্র ফাইলগুলি সনাক্ত করা হচ্ছে


8

আমি scanimageএকটি ডকুমেন্ট স্ক্যানার (ক্যানন ডিআর-2510 সি) ব্যবহার করছি যা ডুপ্লেক্স স্ক্যানিং সমর্থন করে। দুর্ভাগ্যক্রমে, এর SANE ড্রাইভার খালি পৃষ্ঠা শনাক্তকরণ সমর্থন করে না, যাতে মিশ্র পৃষ্ঠাগুলি (একক / ডাবল-পার্শ্বযুক্ত) দিয়ে ফাঁকা পৃষ্ঠাগুলি এটি স্ক্যানের ফলাফল হিসাবে তৈরি করে।

আমি স্ক্যান আউটপুট পোস্ট-প্রসেসিং করার সময় blan ফাঁকা পৃষ্ঠাগুলি স্বয়ংক্রিয়ভাবে মুক্তি পেতে চাই, তাই আমি একটি কমান্ড-লাইন সরঞ্জাম সন্ধান করছি যা টিআইএফএফ বা পিএনএম ফাইল বেশিরভাগ সাদা পিক্সেলের সমন্বয়ে রয়েছে কিনা তা সনাক্ত করতে সক্ষম)।

কোন ধারনা?


লেসমানার উত্তরের ভিত্তিতে এই সমাধানটি আমি নিয়ে এসেছি:

for i in "${DEST_DIR}/out"*.pnm; do
  histogram=`convert "${i}" -threshold 50% -format %c histogram:info:-`
  white=`echo "${histogram}" | grep "white" | sed -n 's/^ *\(.*\):.*$/\1/p'`
  black=`echo "${histogram}" | grep "black" | sed -n 's/^ *\(.*\):.*$/\1/p'`
  blank=`echo "scale=4; ${black}/${white} < 0.005" | bc`
  if [ ${blank} -eq "1" ]; then
    echo "${i} seems to be blank - removing it..."
    rm "${i}"
  fi
done

ডিএসপি.এসই সম্পর্কিত সম্পর্কিত প্রশ্ন: দ্রুত খালি পৃষ্ঠা শনাক্তকরণ
ম্যাক্সচলেপজিগ

উত্তর:


0

আপনি "মাস্টার" ফাঁকা পৃষ্ঠার তুলনায় স্ক্যান করা চিত্রগুলির তুলনা করতে ইমেজম্যাগিক তুলনা সরঞ্জামটি ব্যবহার করতে পারেন । যেহেতু আমার ইমেজম্যাগিক-ফু যথেষ্ট সীমিত তাই আমি আপনাকে কোনও উদাহরণ কমান্ড দিতে পারি না। আপনাকে আরটিএফএম করতে হবে :

দ্বিতীয় লিঙ্কটিতে এমনকি "ফাঁকা ফ্যাক্স" শিরোনামে একটি বিভাগ রয়েছে যা ফাঁকা ফ্যাক্স পৃষ্ঠা কীভাবে সনাক্ত করতে পারে তা ব্যাখ্যা করে। দুঃখের বিষয় এই বিভাগটি অসম্পূর্ণ বলে মনে হচ্ছে। আশা করি প্রারম্ভিক তথ্য আপনার শুরু করার জন্য যথেষ্ট।


5

এখানে বর্ণিত হিসাবে চিত্রম্যাগিক সিএলআইয়ের সনাক্তকরণ বৈশিষ্ট্যটি ব্যবহার করুন:

http://www.imagemagick.org/script/identify.php

আদেশ সহ:

$ identify -format "%#" source.png

রঙের সংখ্যা যদি 1 হয় তবে আপনার একটি খালি পৃষ্ঠা আছে।

আপনি কমান্ডটি ব্যবহার করতে পারেন:

identify -verbose source.png

ফাঁকা চিত্রের জন্য স্ট্যান্ডার্ড বিচ্যুতি, স্কিউ এবং কুর্তোসিস 0 হবে।


1
%#চিত্রটির জন্য একটি গণনা করা হ্যাশ মান প্রদান করে, এটি %kইমো হওয়া উচিত ।
নিকোলাই

1

প্রশ্নের কোডের সামান্য উন্নত সংস্করণ:

#!/bin/bash

mkdir -p "blanks"

for i in "$@"; do
    echo "${i}"
    if [[ -e $(dirname "$i")/.$(basename "$i") ]]; then
        echo "   protected."
        continue
    fi

    histogram=$(convert "${i}" -threshold 50% -format %c histogram:info:-)
    #echo $histogram
    white=$(echo "${histogram}" | grep "white" | cut -d: -f1)
    black=$(echo "${histogram}" | grep "black" | cut -d: -f1)
    if [[ -z "$black" ]]; then
        black=0
    fi

    blank=$(echo "scale=4; ${black}/${white} < 0.005" | bc)
    #echo $white $black $blank
    if [ "${blank}" -eq "1" ]; then
        echo "${i} seems to be blank - removing it..."
        mv "${i}" "blanks/${i}"
    fi
done

পরিবর্তন করুন:

  • একটি নির্দিষ্ট অবস্থান থেকে পড়ার পরিবর্তে আর্গুমেন্ট হিসাবে পরীক্ষা করতে চিত্রগুলি পাস করুন
  • অগ্রগতি প্রতিবেদন
  • কোডটি যদি কোনও ফাইল সঠিকভাবে সনাক্ত না করে তবে আপনি এটিকে একটি ইঙ্গিতটি দিতে পারেন (চিত্রটির নামের সাথে একটি ফাঁকা ফাইল তৈরি করুন এবং সামনে একটি বিন্দুর অর্থ সুরক্ষা a.pnm, ব্যবহারের জন্য touch .a.pnm)
  • ইনপুটটিতে কোনও কালো পিক্সেল না থাকলে স্থির ত্রুটি

1

আমার কৌশলটি হ'ল দোষহীনভাবে সঙ্কুচিত বিন্যাসে চিত্রগুলি স্ক্যান করা (টিফ + কম্প্রেশন)। এইভাবে, ফাঁকা পৃষ্ঠাগুলিতে ফাইলের আকার অনেক কম থাকে এবং আমি এগুলি সনাক্ত করতে পারি find, অন্য ডিরেক্টরিতে সরাতে পারি, দর্শকের সাহায্যে তাদের দ্রুত পরীক্ষা করতে পারি এবং তারপরে এড়াতে পারি।


0

আপনি ইমেজম্যাগিকের সাথে একটি গোলমাল ছাঁটা করতে পারেন , উদাহরণস্বরূপ:

convert image-0001.png -virtual-pixel White -blur 0x15 -fuzz 15% -trim info:

পৃষ্ঠাটি শূন্য নয় যদি এমন কিছু মুদ্রণ করে তবে:

image-0001.png PNG 4565x6129 4960x7016+279+816 8-bit Gray 0.000u 0:00.000

(উদাহরণস্বরূপ ইনপুটটি 600 ডিপিআই ডিআইএন এ 4 স্ক্যান করা লাইনআর্ট চিত্র)

ট্রিমিংয়ের পরে যদি উচ্চতা / প্রস্থ সন্দেহজনকভাবে ছোট হয় তবে এটি খালি eg

image-0001.png PNG 2505x40 4960x7016+0+6976 8-bit Gray 0.000u 0:00.000

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

সংকুচিত চিত্রের ফাইল আকারের দিকে তাকানো, যেমন এনট্রপির সংলগ্ন হিসাবে, একই মিথ্যা ধনাত্মক ফলন করে।

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

convert i1.png -shave 600x0 -virtual-pixel White -blur 0x15 -fuzz 15% -trim info:

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