OpenCV 는 imread()함수 로 그림 을 읽 는 6 가지 정확 한 자세 입 니 다.

인터넷 에서 imread()함수 가 그림 을 읽 는 데 실패 한 것 에 대해 물 어 보 는 사람 이 자주 있 습 니 다.오늘 심혈 을 기울 여 실험 을 통 해 imread()가 호출 한 네 가지 정확 한 자 세 를 정리 하 였 다.
보통 내 가 그림 한 장 을 얻 으 려 는 절대적 인 경 로 는 이렇게 하 는 것 이다.그림 에서 오른쪽 단 추 를 누 르 면 속성―안전―대상 이름 이다.그리고 대상 이름 을 복사 하면 그림 의 절대 경 로 를 얻 을 수 있 습 니 다.
그림:

그러나 이렇게 얻 은 경 로 를 직접 복사 하여 vs 에 붙 여 넣 으 면 바로 오류 가 발생 합 니 다.다음 과 같 습 니 다.

우리 가 얻 은 절대적 인 경 로 를 나타 내 는 방법 은 단 오른쪽 사선 형식 임 을 알 수 있다.분명히 opencv 의 imread()는 이런 방식 을 지원 하지 않 는 다.하지만!!!실험 을 통 해 imread()는 단일 오른쪽 사선 형식 을 지원 하지 않 는 것 을 제외 하고 다른 사선 형식 은 모두 지원 합 니 다!!!예 를 들 어 쌍 오른쪽 사선 형식,쌍 왼쪽 사선 형식,단 왼쪽 사선 형식,앞에서 말 한 세 가지 사선 혼합 형식 은 모두 지원 합 니 다!!왜 그런 지 알 고 싶 어 요.
그림 을 보면 아래 의 여섯 가지 방식 은 모두 지원 되 며 그림 을 성공 적 으로 읽 고 표시 할 수 있 습 니 다.

개인 적 으로 자주 사용 하 는 방법 은 다섯 번 째,상대 경로 법 입 니 다.그림 파일 을 프로젝트 폴 더 아래.cpp 파일 과 함께 놓 으 면 됩 니 다.읽 을 때 imread("miao.jpg")와 같은 이름 으로 직접 읽 을 수 있 습 니 다.
마지막 명령 행 매개 변수 법 은 소스 코드 에서 흔히 볼 수 있 는 것 이다.설정 방법 은:
공정-속성-설정 속성-디 버 깅-명령 행 매개 변 수 를 설정 하고 설정 하면 됩 니 다.그림:

설정 후 miao.jpg 는 argv[1],2.jpg 는 argv[2]입 니 다.
이번 의 전체 코드 는 다음 과 같다.

#include<opencv2\opencv.hpp>
 
using namespace cv;
 
int main(int argc,char* argv[])
{
	Mat img;
 
	//-- 1 --     
	//string imgpath = "C:\\Users\\bingbuyu\\Pictures\\photo\\miao1.jpg";
	//-- 2 --     
	//string imgpath = "C://Users//bingbuyu//Pictures//photo//miao1.jpg";
	//-- 3 --     
	//string imgpath = "C:/Users/bingbuyu/Pictures/photo/miao1.jpg";
	//-- 4 --       
	//string imgpath = "C:/Users//bingbuyu\\Pictures//photo//miao1.jpg";
	//-- 5 --     
	//string imgpath = "miao.jpg";
	//-- 6 --      
	string imgpath = argv[1];
 
	img = imread(imgpath, 1);
	imshow("img", img);
 
	waitKey(0);
	return 0;
}
위의 여섯 가지 운행 결 과 는 역시 이 고양이:
 
여기 서 OpenCV 가 imread()함 수 를 사용 하여 그림 을 읽 는 6 가지 정확 한 자세 에 관 한 글 을 소개 합 니 다.더 많은 관련 OpenCV imread()가 그림 을 읽 는 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 관심 을 가 져 주시 기 바 랍 니 다!

좋은 웹페이지 즐겨찾기