C++ STD VECTOR E 2 Lİ ELEMAN ATAMA

0 replies · 2,673 views

C++ STD VECTOR E 2 Lİ ELEMAN ATAMA
Arkadaşlar Merhaba forumda yeniyim ve bir konuyu size danışmak istiyorum ben işin içinden çıkamadım araştırdım bulamadım
Sorun şu ben x ve y olmak üzere koordinatları bir vectöre kaydetmek istiyorum fakat iki boyutlu olduğu için yapı oluşturmam gerekiyormuş onu hallettim ve şimdi de yakın koordinatları silmek istiyorum Mesela 210 211;209 211 ;210 212 gibi loordinatlar varsa bunlardan bir kalsa yeter  ama nasıl sileceğimi bilmiyorum Kod burada yardım ederseniz , düzeltirseniz sevinirim
#include <iostream><br />#include "opencv2/highgui/highgui.hpp"<br />#include "opencv2/imgproc/imgproc.hpp"<br />#include "opencv2/contrib/contrib.hpp"<br />#include <vector><br />#include <stdio.h><br />#include <algorithm><br />using namespace std;<br />using namespace cv;<br />struct Koordinat {<br />int x;<br />int y;<br />};<br />int main()<br />{<br />	int const r1 =100,r2=75,r3=50;<br />    std::vector<Koordinat> cember1, cember2, cember3;<br />std::vector<int>dizi;<br />	 Mat image = imread("C:\\OpenCV2.4.6\\56.png");<br /> //circle( image, Point( 385, 385 ), 100.0, Scalar( 0, 0, 255 ), 1, 8 );<br />      for(int i = 0; i < image.rows; ++i) {<br />        for(int j = 0; j < image.cols; ++j) {<br />            int b=int(image.at<cv::Vec3b>(i,j)[0]);<br />        int g=int(image.at<cv::Vec3b>(i,j)[1]);<br />        int r=int(image.at<cv::Vec3b>(i,j)[2]);<br />         int x=385,y=385;<br />        <br />    float cember_denklemi1,cember_denklemi2,cember_denklemi3;<br />    cember_denklemi1= sqrt((i-x)*(i-x)+(j-y)*(j-y)-(r1*r1));<br />    cember_denklemi2= sqrt((i-x)*(i-x)+(j-y)*(j-y)-(r2*r2));<br />     cember_denklemi3= sqrt((i-x)*(i-x)+(j-y)*(j-y)-(r3*r3));<br />      if(cember_denklemi1<=2.0&&b+g+r>=0)<br />       cout<<"KIRMIZI"<<i<<"  "<<j<<endl;<br />        <br />        cember1.push_back({i, j});<br />       <br />     if(cember_denklemi2<=2.0&&b+g+r>=0)<br />     cout<<"YESİL"<<i<<"  "<<j<<endl;<br />     cember2.push_back({i, j});<br />    if( cember_denklemi3<=2.0&&b+g+r>=0)<br />     cout<<"MAVİ"<<i<<"   "<<j<<endl;<br />    <br />       cember3.push_back({i, j});<br />    }<br />	}<br />	 for(int i=0;i<cember1.size();i++)<br />	{<br />		for(int j=i+1;j<cember1.size();j++)<br />		{<br />			if((cember1.at(i).x-cember1.at(j).x)*(cember1.at(i).x-cember1.at(j).x)+(cember1.at(i).y-cember1.at(j).y)*(cember1.at(i).y-cember1.at(j).y)<3)<br />			dizi.push_back(j);<br />		}<br />		<br />	}<br />	for(int j=0;j<dizi.size();j++)<br />	{<br />		cember1.erase(cember1.begin()+dizi.at(j));<br />	}<br />        dizi.clear();<br /><br />}