su_myat_phyu

大学でコンピューターサイエンスを学びました。現在、プログラマーとして働いています。得ら…

su_myat_phyu

大学でコンピューターサイエンスを学びました。現在、プログラマーとして働いています。得られた知識を皆様と共有したく記事を書いています。これからもよろしくお願いします。

マガジン

  • CRE-COエンジニアの技術OUTPUT

    • 46本

    弊社では、インプットも大事だけけどアウトプットも大事!といった方針のもと、所属のエンジニアさん達にご自身が学んだ技術を記事にしてもらう活動をしております。様々な技術を持ったエンジニアが所属する弊社だからこその多種多様な情報をご覧ください。

最近の記事

顔、目、口を認識するためのOpenCVの使用法 - C++での実装

本記事では、OpenCVのHaar Cascadeを使用して画像中の顔と目を検出する方法について説明します。まず、Haar Cascadeについて簡単に紹介します。 Haar Cascadeの紹介 Haar Cascadeは、2001年にPaul ViolaとMichael Jonesによって導入された、コンピュータビジョンにおける物体検出のための広く使用されている手法です。この技術は、画像やビデオ内の顔や目などの物体を検出するために機械学習を利用します。このプロセスには、

    • なぜC++開発者はデバッグモードとリリースモードの両方の実行ファイルを作成するのか???

      はじめに ソフトウェア開発の世界では、特にC++のような言語を使う場合、異なるビルド構成を管理することが重要です。これにより、アプリケーションの品質と性能の両方を確保できます。一般的な実践として、デバッグモードとリリースモードの2つの異なるタイプの実行ファイルを作成します。これらは開発プロセスの異なる段階で特定の目的を果たし、それぞれが重要な利点を提供します。本記事では、なぜC++開発者がデバッグモードとリリースモードの両方の実行ファイルを作成するのか、その理由を探り、これ

      • 具体的なC++でのOpenCVの使用: マイアプローチ (1)

        OpenCV(オープンソース・コンピュータビジョンライブラリ)は、さまざまなコンピュータビジョンや機械学習のタスクに使用される強力なツールです。私は、C++でOpenCVを利用してプロジェクトを開発しています。この記事シリーズでは、私がどのようにOpenCVを使用しているのかを紹介します。この記事では、特にWindows環境におけるVisual Studio CodeとCMakeを使用したOpenCVのセットアップと基本的な使い方を説明します。 開発環境 OS : Wi

        • C++コードとコンパイラ

          コンパイラとは? コンパイラの概要と種類 コンパイラは、高水準プログラミング言語で書かれたソースコードを、コンピュータのプロセッサが実行できる機械語に翻訳するプログラムです。コンパイラは、コンパイルの段階、対象とする言語、サポートするプラットフォームなどのさまざまな基準に基づいていくつかの種類に分類されます。それでは、各種類について詳しく見ていきましょう。 コンパイル段階に基づく分類 (1) シングルパスコンパイラ: シングルパスコンパイラは、ソースコードを一度だけ通

        顔、目、口を認識するためのOpenCVの使用法 - C++での実装

        マガジン

        • CRE-COエンジニアの技術OUTPUT
          46本

        記事

          CMakeとVisual Studio Code:C++開発のための強力なコンビ

          CMakeは、プラットフォームやコンパイラに依存しない方法でビルドプロセスを管理する広く使用されているビルドシステムです。特にC++プロジェクトにおいて、多くの魅力的な特徴と利点のために人気があります。 クロスプラットフォームビルド CMakeを使用すると、開発者は異なるプラットフォーム(Windows、macOS、Linux)で機能する一連のビルド指示を記述できます。これにより、各プラットフォーム用に別々のビルドスクリプトを維持する必要がなくなります。CMakeは、Un

          CMakeとVisual Studio Code:C++開発のための強力なコンビ

          CMakeLists.txtファイルの作成方法

          CMakeLists.txt ファイルは、CMake を使用して C++ プロジェクトをどのように構築および管理するかを定義する特定の形式に従います。CMakeLists.txtファイルには、CMake が異なるプラットフォームおよびコンパイラ用のメイクファイルまたは他のビルド設定を生成するために解釈する一連のディレクティブコマンドが含まれています。 基本構造 通常、CMakeLists.txt ファイルは CMake の最低バージョンの定義とプロジェクト名およびバージョ

          CMakeLists.txtファイルの作成方法

          C++におけるオブジェクト指向プログラミング Part VII

          コンストラクタとは? コンストラクタは、クラスのオブジェクトが作成されるときに自動的に呼び出される特別なクラス関数です。主にオブジェクトの初期化に使用されます。 コンストラクタのタイプ デフォルトコンストラクタ: パラメータがないコンストラクタ。 パラメータ付きコンストラクタ: 属性を初期化するためのパラメータを持つコンストラクタ。 コピーコンストラクタ: 他のオブジェクトから変数をコピーしてオブジェクトを作成するコンストラクタ。 コンストラクタの例: class

          C++におけるオブジェクト指向プログラミング Part VII

          C++におけるオブジェクト指向プログラミング Part VI

          ポリモーフィズム (Polymorphism) とは何か? ポリモーフィズムとは、「多くの形」という意味のギリシャ語からきており、一つの関数が異なるデータタイプに対して異なる方法で動作するOOPの概念です。C++では、メソッドが同じ名前であっても、それが作用するオブジェクトに基づいて異なる方法で動作することを可能にします。 C++におけるポリモーフィズムのタイプ コンパイル時ポリモーフィズム(静的バインディング):コンパイル時に決定されます。メソッドのオーバーロードやオペ

          C++におけるオブジェクト指向プログラミング Part VI

          C++におけるオブジェクト指向プログラミング Part V

          継承 (Inheritance) とは何か? 継承は、新しいクラス(派生クラス)が既存のクラス(基底クラス)から属性やメソッドを受け継ぐOOPの機能です。この関係により、派生クラスは基底クラスで定義された動作を再利用、拡張、または変更できます。 C++における継承のタイプ C++はいくつかのタイプの継承をサポートしています: 単一継承: 一つの基底クラスから派生する。 多重継承: 複数の基底クラスから派生する。 多段階継承: クラスが派生クラスから派生し、多段階の階

          C++におけるオブジェクト指向プログラミング Part V

          C++におけるオブジェクト指向プログラミング Part IV

          抽象化(Abstraction)とは何か? OOPにおける抽象化は、複雑な現実を隠蔽し、必要な部分のみを公開するプロセスです。オブジェクトが何をするかに焦点を当て、どのようにそれを行うかは隠します。C++では、クラスとインターフェイスを使用してこの目的を達成します。 C++における抽象化の実装 C++では、クラスのメソッドを定義することで抽象化を実現します。クラスのインターフェイス、つまり公開されているメソッドは、外部から見て単純化されたビューを提供します。 抽象化を用

          C++におけるオブジェクト指向プログラミング Part IV

          C++におけるオブジェクト指向プログラミング Part III

          カプセル化 (Encapsulation) とは何か? カプセル化とは、データ(属性)とそれに作用するメソッド(関数)を一つの単位、つまりクラスにまとめること、およびオブジェクトの一部のコンポーネントへの直接アクセスを制限するプロセスです。これにより、誤った操作やメソッドの誤用を防ぎます。 C++におけるカプセル化の実装 C++では、クラス内のアクセス指定子を使用してカプセル化を実現します: private(プライベート):メンバーはクラス内部からのみアクセス可能。

          C++におけるオブジェクト指向プログラミング Part III

          C++におけるオブジェクト指向プログラミング Part II

          クラスとは何か? C++でのクラスはオブジェクトを作成するための設計図(blueprint)です。データと関数を一つの単位にまとめることで、データ型を定義します。 クラスの定義方法 C++でクラスを定義するには、classキーワードに続けてクラス名と波括弧を使用します: class MyClass { // 属性やメソッドはここに記述}; クラスの構造 C++の典型的なクラスには以下のものが含まれます: データメンバー:データを保持する変数。 メンバー関数:

          C++におけるオブジェクト指向プログラミング Part II

          C++におけるオブジェクト指向プログラミング Part I

          オブジェクト指向プログラミングとは? オブジェクト指向プログラミングは、アクションよりもオブジェクトを中心に、ロジックよりもデータを中心に据えたプログラミングのパラダイムです。OOPでは、クラスのインスタンスであるオブジェクトが、フィールド(属性やプロパティとしても知られる)とメソッド(関数)の形でデータを含むことができます。 OOPの基本原則 OOPは、以下の4つの基本原則に基づいています: カプセル化(Encapsulation): オブジェクト内のデータをプライ

          C++におけるオブジェクト指向プログラミング Part I

          ソフトウェア開発で使用される用語の理解

          本記事では、ソフトウェア開発で一般的に使用される用語を解き明かすことを目指します。明確な定義と例を提供することで、ソフト開発の概念を志望する開発者からソフトウェア制作の内部動作について単に興味がある人々まで、誰にとってもアクセスしやすいものにしようと努めます。用語を理解することは、絶えず進化するソフトウェア開発の風景をナビゲートする上で重要なステップです。 1. プラットフォーム (Platform) : 説明: ソフトウェア開発におけるプラットフォームは、ソフトウェアアプ

          ソフトウェア開発で使用される用語の理解

          C++開発を強化する: プログラマー必見のVSCode拡張機能トップ10

          1. C/C++ (Microsoft製) VSCodeでのC++開発における基本拡張機能で、IntelliSenseによる賢いコード補完、高度なデバッグ機能、シンボルとヘッダの参照が可能です。VSCode環境とシームレスに統合され、C++開発作業における強固な基盤を提供します。 2. Code Runner 多言語に対応し、C++プログラマーがコードスニペットやファイルを簡単に実行できる汎用性とユーザーフレンドリーな拡張機能です。特にC++でのアルゴリズムのテストや小さな

          C++開発を強化する: プログラマー必見のVSCode拡張機能トップ10

          プログラミングにおけるガーベジコレクションの理解

          はじめに ガーベジコレクション(GC)は、Java、C#、Pythonなどの多くの現代プログラミング言語で使用されている自動メモリ管理機能です。プログラムがスムーズに実行されるようにメモリ割り当てと回収のプロセスを簡素化することを目的としています。この記事では、ガーベジコレクションの基本、タイプ、およびソフトウェア開発への影響について詳しく説明します。 ガーベジコレクションとは何か? ガーベジコレクションは、プログラムで使用されなくなったメモリを自動的に識別し、解放する

          プログラミングにおけるガーベジコレクションの理解