IplImage* Saliency::Get(const IplImage* imgIn)
{
	if (imgIn != NULL)
	{
		IplImage* tt = cvCloneImage(imgIn);
		Mat sal(tt);
		Mat img3f(tt);
		img3f.convertTo(img3f, CV_32FC3, 1.0/255);//图片转换,可能是0-255之间转换到0-1之间,归一化
		sal = GetRC(img3f);
		sal.convertTo(sal,CV_32FC3,255);
		IplImage qImg(sal);

		IplImage * result = cvCreateImage(cvGetSize(imgIn),8,1);
		for (int r=0;r<imgIn->height;r++)
		{
			for (int c=0;c<imgIn->width;c++)
			{
				CvScalar col;
				col.val[0] = cvGetReal2D(&qImg,r,c);
				cvSet2D(result,r,c,col);
			}
		}
		return result;
	}
	return NULL;
}
IplImage* Saliency::Get(const string imgNameW)
{
	IplImage* tt1 = cvLoadImage(imgNameW.c_str());
	IplImage* tt2 = cvLoadImage(imgNameW.c_str());
	Mat sal(tt1);
	Mat img3f(tt2);
	//Mat sal = cvarrToMat(tt1);
	//Mat img3f = cvarrToMat(tt2);
	//Mat img3f
	//Mat sal, img3f = imread(imgNameW);
	img3f.convertTo(img3f, CV_32FC3, 1.0/255);//图片转换,可能是0-255之间转换到0-1之间,归一化
	sal = GetRC(img3f);
	
	/*string str = "D:\\rc.png";
	imwrite(str.c_str(), sal*255);
	IplImage* result = cvLoadImage("D:\\rc.png",0);*/
	IplImage* result;
	CvSize size;
	size.width = sal.cols;
	size.height = sal.rows;
	result = cvCreateImage(size,8,1);
	for(int i=0;i<result->height;i++)
	{
		for(int j=0;j<result->width;j++)
		{
			CvScalar col;
			col.val[0] = sal.at<float>(i,j)*255.0f;
			cvSet2D(result,i,j,col);
		}
	}
	return result;
}
Exemple #3
0
Mat CmSaliencyRC::GetFT(CMat &img3f)
{
	CV_Assert(img3f.data != NULL && img3f.type() == CV_32FC3);
	Mat sal(img3f.size(), CV_32F), tImg;
	GaussianBlur(img3f, tImg, Size(3, 3), 0);
	cvtColor(tImg, tImg, CV_BGR2Lab);
	Scalar colorM = mean(tImg);
	for (int r = 0; r < tImg.rows; r++) {
		float *s = sal.ptr<float>(r);
		float *lab = tImg.ptr<float>(r);
		for (int c = 0; c < tImg.cols; c++, lab += 3)
			s[c] = (float)(sqr(colorM[0] - lab[0]) + sqr(colorM[1] - lab[1]) + sqr(colorM[2] - lab[2]));
	}
	normalize(sal, sal, 0, 1, NORM_MINMAX);
	return sal;
}
Exemple #4
0
void ZGui::verEliminados()
{  
  QFile salida("/mmc/mmca1/zCleanerList.txt");
  QTextStream sal(&salida);
  salida.open(IO_WriteOnly | IO_Translate);
  QString aux="";
  for(int i=0;i<eliminados.count();i++)
  //      aux+=aux + eliminados[i] + '\n';     

  sal << eliminados[i] << endl;
  if(infos==NULL)
  {
  infos = new ZNoticeDlg(ZNoticeDlg::Information, 3000, QString("OK"), QString("List save in /mmc/mmca1"), this, "z", true, 0);
   infos->show();
 
  } infos=NULL;
salida.close();
Exemple #5
0
void * clientHandler(void * arg) {
	threadStruct *inArg = (threadStruct *) arg;
	int sockfd = inArg->sockfd;
	free(inArg);

	char *msg = malloc(sizeof(char)*CMD_MAX_SIZE);
	*msg = '\0';
	msgHeader header;
	User user;

	// Agregar usuario
	readBytes(sockfd, (void *) &header,sizeof(header));
	readBytes(sockfd, (void *) msg, header.msgSize);
	cleanString(msg);

	user.sockfd = sockfd;
	strncpy(user.name,msg,NAMES_SIZE);
	*(user.name + NAMES_SIZE -1) = '\0';

	list_append(&Users,(void *) &user);

	// Agregar a la sala default #!

	while (1) {

		// Leer un mensaje del cliente
		readBytes(sockfd, (void *) &header,sizeof(header));
		readBytes(sockfd, (void *) msg, header.msgSize);
		cleanString(msg);

		switch (header.code) {

		case MSG_CODE_SHUT:
			break; // #! NOT DONE

		case MSG_CODE_SAL:
			sal(sockfd);
			break;
		case MSG_CODE_USU:
			usu(sockfd);
			break;
		case MSG_CODE_MEN:
			men(sockfd,msg);
			break;
		case MSG_CODE_SUS:
			sus(sockfd,msg);
			break;
		case MSG_CODE_DES:
			des(sockfd);
			break;
		case MSG_CODE_CRE:
			cre(sockfd,msg);
			break;
		case MSG_CODE_ELI:
			// eli() #!
			break;
		case MSG_CODE_FUE:
			fue(sockfd);
			free(msg);
			pthread_exit(NULL);
			break;
		}

		*msg = '\0';
	}
	return NULL;
}
Exemple #6
0
void *connection_handler(void *td) {
   int sock = ((Thread_data *) td)->client_sock;
   list subscribed_rooms = ((Thread_data *) td)->subscribed_rooms;	
   char msg[MAX_PACK_SIZE];
   memset(msg, 0, MAX_PACK_SIZE);

   user_data *user = wait_username(rooms, sock);  
   user->subscribed_rooms = subscribed_rooms;
   add(connected_users, user);
   add(subscribed_rooms, rooms->first);	
   int read_size;
   while ((read_size = recv(sock, msg, MAX_PACK_SIZE, 0)) > 0) {
      pthread_mutex_lock(&mutex);
      if (read_size < 3) {
      }
      else if ((strlen(msg) >= 6) &&
					(msg[3] == ' ') && 
					(msg[0] == 's') && (msg[1] == 'u') && (msg[2] == 's')) {
			memmove(msg, msg+4, 252);
			msg[strlen(msg)-1] = '\0';   //replace new line
         sus(msg, user);
      }
      else if ((strlen(msg) == 4) &&
					(msg[0] == 's') && (msg[1] == 'a') && (msg[2] == 'l')) {
         sal(sock);
      } 
      else if ((strlen(msg) >= 6) &&  //because of new line
					(msg[3] == ' ') &&
					(msg[0] == 'm') && (msg[1] == 'e') && (msg[2] == 'n')) {
			memmove(msg, msg+4, 252);
			msg[strlen(msg)-1] = '\0';   //replace new line
         men(user, subscribed_rooms, msg);
      }
      else if ((strlen(msg) == 4) &&
					(msg[0] == 'u') && (msg[1] == 's') && (msg[2] == 'u')) {
         usu(sock); 
      }
      else if ((strlen(msg) == 4) &&
					(msg[0] == 'd') && (msg[1] == 'e') && (msg[2] == 's')) {
         des(subscribed_rooms, user);
      }
      else if ((strlen(msg) >= 6) &&
					(msg[3] == ' ') && 
					(msg[0] == 'c') && (msg[1] == 'r') && (msg[2] == 'e')) {
			memmove(msg, msg+4, 252);
			msg[strlen(msg)-1] = '\0';   //replace new line
         cre(sock, msg);
      }
      else if ((strlen(msg) >= 6) &&
					(msg[3] == ' ') && 	
					(msg[0] == 'e') && (msg[1] == 'l') && (msg[2] == 'i')) {
			memmove(msg, msg+4, 252);
			msg[strlen(msg)-1] = '\0';   //replace new line
         eli(msg, sock, user);
      }
      else if ((strlen(msg) == 4) &&
					(msg[0] == 'f') && (msg[1] == 'u') && (msg[2] == 'e')) {
         fue(subscribed_rooms, user);
      }
      else if ((strlen(msg) == 4) &&
					(msg[0] == 'h') && (msg[1] == 'l') && (msg[2] == 'p')) {
			memset(msg, 0, MAX_PACK_SIZE);
			strcat(msg, "-----------\n");
			strcat(msg, "The valids commands formats are:\n");
			strcat(msg, "sus <room name>\n");
			strcat(msg, "cre <room name>\n");
			strcat(msg, "eli <room name>\n");
			strcat(msg, "sal\n");
			strcat(msg, "usu\n");
			strcat(msg, "des\n");
			strcat(msg, "fue\n");
			strcat(msg, "-----------");
			write(sock, msg, MAX_PACK_SIZE);
      }
		else {
			memset(msg, 0, MAX_PACK_SIZE);
			strcat(msg, "Unrecognized option.");
			strcat(msg, " Try `hlp' for more information.");
			write(sock,	msg, MAX_PACK_SIZE);
		}
      memset(msg, 0, MAX_PACK_SIZE);
      pthread_mutex_unlock(&mutex);
   }
}
Exemple #7
0
main(){
	sal();
	
}