728x90
728x90
μμ€ μ½λ
μ μ΄λ―Έμ§ νμΌμ λ€μ΄λ‘λν΄μ€μλ€. μ μμμ νμ κ°μ μ½μ΄μ€λ νλ‘κ·Έλ¨μ μμ±ν΄λ΄ μλ€
μ λ ₯λ μμ νμΌμ νμ κ°μ μΆλ ₯νλ μμ€μ½λμ λλ€.
μ¦, μμμ κ° ν½μ κ°μ λͺ¨λ μΆλ ₯ν΄μ€λλ€.
μλλ μμ€μ½λμ λλ€. OpenFileDialog() λ‘ μμ νμΌμ λΆλ¬μ΅λλ€.
#include <opencv2/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <Windows.h>
#include <string.h>
#include <iostream>
using namespace std;
using namespace cv;
string OpenFileDialog() {
char name[MAX_PATH] = { 0, };
OPENFILENAMEA ofn;
ZeroMemory(&ofn, sizeof(ofn));
ofn.lStructSize = sizeof(OPENFILENAMEA);
ofn.hwndOwner = NULL;
ofn.lpstrFilter = "λͺ¨λ νμΌ(*.*)\0*.*\0";
ofn.lpstrFile = name;
ofn.nMaxFile = MAX_PATH;
ofn.Flags = OFN_EXPLORER | OFN_FILEMUSTEXIST | OFN_HIDEREADONLY;
ofn.lpstrDefExt = "";
string strName;
if (GetOpenFileNameA(&ofn))
strName = name;
return strName;
}
void ReadImageToString() {
// μμμ νμκ° νμΈ
auto name = OpenFileDialog();
if (name != "") {
auto image = imread(name, IMREAD_GRAYSCALE);
if (image.empty()) {
cout << "μμμ μ½λλ° μ€ν¨νμμ΅λλ€." << endl;
exit(1);
}
// κ΄μ¬ μμ
Rect roi(0, 0, 32, 32);
// μμμμ κ΄μ¬μμ μΆμΆ
Mat roi_img = image(roi);
// μμμ κ° μΆλ ₯
cout << "[roi_img] = " << endl;
for (int i = 0; i < roi_img.rows; i++) {
for (int j = 0; j < roi_img.cols; j++) {
cout.width(4);
cout << (int)roi_img.at<uchar>(i, j);
}
cout << endl;
}
// μμμ μ¬κ°ν 그리기 (κ΄μ¬μμ)
rectangle(image, roi, Scalar(255), 1);
// μμ μΆλ ₯
imshow("image", image);
waitKey();
}
}
void main() {
ReadImageToString();
}
μ€ν κ²°κ³Ό
μ μ²λΌ μ΄λ―Έμ§λ₯Ό λΆλ¬μ€λ©΄ μ΄λ κ² μΆλ ₯μ΄ λ©λλ€.
728x90
λ°μν
'π Programming > OpenCV' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[μμ μ²λ¦¬] μ»¬λ¬ λͺ¨λΈ ( RGB, CMY, HSI )κ°μ κ΄κ³μ λ³ν (0) | 2020.12.28 |
---|---|
[μμ μ²λ¦¬] μΈκ°μ λΉ, κ°μκ΄μ κ³Ό μμ νν (0) | 2020.12.28 |
[μμ μ²λ¦¬] λμ§νΈ μμμ²λ¦¬λ ? (0) | 2020.12.28 |
[OpenCV] κ·Έλ μ΄ μ€μΌμΌ(Gray Scale) μμ λ§λ€κΈ° (0) | 2020.09.20 |
[OpenCV] OpenCV μμνκΈ°(μ€μΉ, νκ²½ μ€μ , νμΌ λΆλ¬μ€κΈ°) (0) | 2020.09.08 |