本文整理汇总了C++中SharedMemory::getShMemData方法的典型用法代码示例。如果您正苦于以下问题:C++ SharedMemory::getShMemData方法的具体用法?C++ SharedMemory::getShMemData怎么用?C++ SharedMemory::getShMemData使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SharedMemory
的用法示例。
在下文中一共展示了SharedMemory::getShMemData方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: main
void main(int argc, char* argv[])
{
// コマンドライン引数からパスを取得して画像を読み込む
pic = imread(argv[1] , 0);
// 複製
pic_col = Mat(pic.rows, pic.cols, CV_8UC3);
cvtColor(pic, pic_col, CV_GRAY2BGR);
pic_tmp = pic_col.clone();
pic_zoom = Mat(pic_col, Rect((pic_col.cols - zoomSize.width) / 2, (pic_col.rows - zoomSize.height) / 2, zoomSize.width, zoomSize.height));
// 全体画像の縮小率.縦横比固定のためzoomSizeの大きいほうのみで決める
int largerSize = zoomSize.width > zoomSize.height ? zoomSize.width : zoomSize.height;
reductionRate = Size(pic.cols / largerSize, pic.rows / largerSize);
// 全体画像を縮小して表示
namedWindow("Origin", 1);
cv::setMouseCallback("Origin", zoomCoodClick, 0);
imshowResize(string("Origin"), pic_col,Size(pic.cols/reductionRate.width,pic.rows/reductionRate.height));
// ズーム画像を表示
namedWindow("zoom", 1 );
cv::setMouseCallback("zoom", coodClick, 0);
imshow("zoom", pic_zoom);
int key;
while (true){
key = waitKey(5);
if (key == 's'){//保存
string str;
cout << "s" << endl;
cout << "保存名=>";
getline(cin, str);
imwrite(str, pic_col);
cout << "Saved" << endl;
}
else if (key == 'q' || shMem.getShMemData(ISEXIT))
{
string imgname = argv[1];
imgname += ".jpg";
imwrite(imgname, pic_col);
cout << "Saved" << endl;
shMem.setShMemData(false ,ISEXIT);
break;
}
//点が確定したとき
if (shMem.getShMemData( ISCONFIRMED ) != 0 )
{
// 確定画像にも点を描画
pic_col.at<Vec3b>(xy[1] + zoomPoint.y, xy[0] + zoomPoint.x) = Vec3b(0, 255, 0);
circle(pic_col, cv::Point(xy[0] + zoomPoint.x, xy[1] + zoomPoint.y), 10, cv::Scalar(0, 255, 0), 3);
if (prePoint.x > 0 && prePoint.y > 0) line(pic_col, prePoint, Point(xy[0] + zoomPoint.x, xy[1] + zoomPoint.y), cv::Scalar(0, 0, 200), 3, 4);
pic_tmp = pic_col.clone();
rectangle(pic_tmp, zoomPoint, Point(zoomPoint.x + zoomSize.width, zoomPoint.y + zoomSize.height), cv::Scalar(0, 0, 200), 5, 4);
imshowResize(string("Origin"), pic_tmp, Size(pic_tmp.cols / reductionRate.width, pic_tmp.rows / reductionRate.height));
prePoint = Point(xy[0] + zoomPoint.x, xy[1] + zoomPoint.y);
// zoom画像に点を描画
pic_zoom = Mat(pic_col, Rect(zoomPoint, zoomSize));
imshow("zoom", pic_zoom);
shMem.setShMemData( false , ISCONFIRMED );
}
// cs側で経路を挿入したら反映のために経路情報を読みこみ直す
if (shMem.getShMemData(ISINSERT))
{
reloadRoute(argv[1]);
}
}
}