मैं एक खाली छवि बनाना चाहता हूं और उपयोगकर्ता से पैरामीटर लेना चाहता हूं, जो वेव ओरिएंटेशन, वेव फ्रिक्वेंसी, फेज-शिफ्ट, वेव एम्प्लिट्यूड हैं।
और मुझे निम्न चित्र के समान आउटपुट देना होगा:
मेरे सवाल:
- मैं अपनी खाली छवि के अंदर लहरें कैसे खींच सकता हूं?
- मुझे किन कार्यों का उपयोग करना चाहिए?
उत्तर:
जवाब के लिए 0 № 1मुझे लगता है कि आप निम्नलिखित कदम कर सकते हैं (लेकिन मुझे यकीन नहीं है, क्योंकि मैंने इसे "परीक्षण नहीं किया है"):
एक पंक्ति में पिक्सेल के मूल्यों की गणना करने के लिए आवश्यक वेव फ्रीक्वेंसी, फेज-शिफ्ट और वेव एम्प्लिट्यूड के साथ साइन फ़ंक्शन का उपयोग करें। संभवतः यह साइन और सामान्यीकरण का उपयोग करके ऐसा दिखेगा:
for( int j = 0; j < I.cols; ++j ) I.at<uchar>(i,j) = (Amplitude * sin(frequency*j + PhaseShift) + 1) / 2 * 255;
ऊर्ध्वाधर पंक्तियों की तरह कुछ प्राप्त करने के लिए दूसरी पंक्तियों में पहली पंक्ति की प्रतिलिपि बनाएँ।
उपयोग
cv::getRotationMatrix2D
तथाcv::warpAffine
आवश्यक तरंग अभिविन्यास प्राप्त करने के लिए।